我正在使用Juacter的Anaconda Navigator,
import tensorflow as tf
from tensorflow import keras
print(tf.__version__)
>>> 1.14.0
这是我的模特
def create_model():
model = tf.keras.Sequential([
keras.layers.Dense(86, activation='relu', kernel_regularizer=keras.regularizers.l2(0.0001),input_shape=(129,)),
keras.layers.Dropout(0.2),
keras.layers.Dense(142, activation='relu', kernel_regularizer=keras.regularizers.l2(0.0001)),
keras.layers.Dropout(0.2),
keras.layers.Dense(4, activation='softmax')
])
return model
model = create_model()
# Display the model's architecture
model.summary()
在训练,预测和评估模型后,我决定使用
保存模型model.save('/Users/Jennifer/myproject/my_model.h5')
我用h5py文件检查了目录和文件夹。我决定使用
加载它new_model1 = tf.keras.models.load_model('/Users/Jennifer/myproject/my_model.h5')
我遇到错误
ValueError: Unknown entries in loss dictionary: ['class_name', 'config']. Only expected following keys: ['dense_17']
请帮助我。我该怎么办?我几乎整天都在尝试解决此问题。谢谢
答案 0 :(得分:0)
这里有一些工作可以减轻重量:
#!/usr/bin/env python3
from tensorflow import keras
import os
def create_model():
model = keras.Sequential([
keras.layers.Dense(86, activation='relu', kernel_regularizer=keras.regularizers.l2(0.0001),input_shape=(129,)),
keras.layers.Dropout(0.2),
keras.layers.Dense(142, activation='relu', kernel_regularizer=keras.regularizers.l2(0.0001)),
keras.layers.Dropout(0.2),
keras.layers.Dense(4, activation='softmax')
])
return model
if os.path.exists("junk.h5"):
model = create_model()
model.load_weights("junk.h5")
else:
model = create_model()
model.compile(optimizer=keras.optimizers.Adam(0.0001), loss=keras.losses.CategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
model.save("junk.h5")
另一种解决方法是在没有优化器的情况下保存模型
model.save("junk.h5", include_optimizer=False)
您正在使用的损失函数似乎创建了包含无效键的字典。这听起来像是keras / tensorflow中的错误。这就是为什么colab可能起作用的原因,因为它使用的是更新版本。