为了账号安全,请及时绑定邮箱和手机立即绑定

tf.keras.models.save_model和优化器警告

tf.keras.models.save_model和优化器警告

眼眸繁星 2021-04-17 22:19:02
我使用以下方法创建了一个顺序模型tf.keras:model = tf.keras.Sequential()model.add(tf.keras.layers.Dense(8, input_dim=4))model.add(tf.keras.layers.Dense(3, activation=tf.nn.softmax))opt = tf.train.AdamOptimizer(learning_rate=0.001)model.compile(optimizer=opt, loss="categorical_crossentropy", metrics=["accuracy"])model.summary()之后,我使用train_on_batch以下代码创建了一个培训过程:EPOCHS=50for epoch in range(EPOCHS):  for metrics, labels in dataset:    # Calculate training loss and accuracy    tr_loss, tr_accuracy = model.train_on_batch(metrics, labels)当我尝试保存模型时,会收到警告。我不明白为什么,因为我将优化器作为的一部分包括在内model.compile:tf.keras.models.save_model(    model,    "./model/iris_model.h5",    overwrite=True,    include_optimizer=True)警告:tensorflow:TensorFlow优化器无法在实例化后访问优化器属性或优化器状态。因此,我们无法将优化器保存为模型保存文件的一部分。加载模型后,您将不得不再次编译模型。最好改用Keras优化器(请参阅keras.io/optimizers)。我使用的TF版本是1.9.0-rc2。
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

像这样的优化程序tf.keras.optimizers.Adam()将被保存,而tf.train.AdamOptimizer()不会保存在上model.save()

在撰写本文时,一些关于TensorFlow的官方教程都使用了tf.train.*优化器,而我坚信选择这样做tf.keras.optimizers.*是最好的方法。


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 415 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信