【keras】models.load_model() 报错问题 Unknown entry in loss dictionary:
在试用tf2.0.keras建立的一个简单的神经网络时,发现模型保存之后重新加载会出问题
【【keras】models.load_model() 报错问题 Unknown entry in loss dictionary:】代码如下:
# 创建模型
inputs = tf.keras.Input(shape= (17,),name= 'inputs')
hidden_1 = layers.Dense(48,activation='linear',name= 'hidden_1')(inputs)
dropout_1 = layers.Dropout(rate= 0.1,seed= 10,name= 'dropout_1')(hidden_1)
outputs = layers.Dense(93,activation='linear',name= 'outputs')(dropout_1)
model = tf.keras.Model(inputs= inputs,outputs= outputs,name= 'model_T')
# 模型摘要
model.summary()# 模型编译
model.compile(optimizer= tf.keras.optimizers.Adam(learning_rate= 0.001),
loss= tf.losses.MeanSquaredError(),
metrics= [])# 训练
history = model.fit(x= data_train[:,idx_bt],
y= data_train[:,idx_t],
batch_size= None,
epochs= 50,
#validation_split= 0.1,
validation_data=https://www.it610.com/article/(data_test[:,idx_bt],data_test[:,idx_t]),
verbose= 1)# 保存模型
model.save('model_save.h5')#加载模型
# del model
model = tf.keras.models.load_model('model_save_5.h5')
报错:
ValueError: Unknown entry in loss dictionary: class_name. Only expected following keys: ['outputs']
后来发现在model.compile()中,loss那里,把 tf.losses.MeanSquaredError() 改成 'mean_squared_error',即:
# 模型编译
model.compile(optimizer= tf.keras.optimizers.Adam(learning_rate= 0.001),
loss= 'mean_squared_error',metrics= [])
即可加载成功。
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长