我使用Keras训练了DNN。但是,我无法保存并加载模型。
from keras.models import load_model
model.save('/home/ubuntu/pynb/savedmodel.tfl')
#model.load('/home/ubuntu/pynb/savedmodel.tfl')
但是我发现使用.meta,.index和.data.00000-of-00001扩展名找到3个文件而不是savedmodel.tfl文件。 因此,当我尝试使用model.load加载时,它表示找不到该文件。
我还尝试了在SO
上建议的其他替代方案model_json = model.to_json()
但是我收到了一个错误 AttributeError:'DNN'对象没有属性'to_json'
我正在使用Keras版本2.0.4。
请建议如何正确保存以及如何从3个文件加载?
编辑:(我正在添加与构建模型相关的代码)
net = tflearn.input_data([None, size_of_each_vector])
net = tflearn.embedding(net, input_dim=vocab_size, output_dim=128)
net = tflearn.lstm(net, 128, dropout=0.6) # Set the dropout to 0.6
net = tflearn.fully_connected(net, no_of_unique_y_labels, activation='softmax') # relu or softmax
net = tflearn.regression(net,
optimizer='adam',
learning_rate=1e-4,
loss='categorical_crossentropy')
model = tflearn.DNN(net, tensorboard_verbose=0)
model.fit(X_train_padded_seqs, y_train,
validation_set=(X_test_padded_seqs, y_test),
n_epoch=n_epoch,
show_metric=True,
batch_size=100)
答案 0 :(得分:1)
您使用的模型是Tensorflow模型。您的模型必须是Keras模型才能利用Keras保存功能。
将模型转换为Keras模型后(如果您选择),this video将介绍Keras提供的不同保存和加载机制。
另外,只需快速说明,model.to_json()
仅保存模型的体系结构。它不会像model.save()
那样保存其权重或训练配置。