保存DNN模型可保存3个文件。怎么加载?

时间:2017-10-11 23:11:08

标签: tensorflow deep-learning keras keras-2

我使用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)

1 个答案:

答案 0 :(得分:1)

您使用的模型是Tensorflow模型。您的模型必须是Keras模型才能利用Keras保存功能。

将模型转换为Keras模型后(如果您选择),this video将介绍Keras提供的不同保存和加载机制。

另外,只需快速说明,model.to_json()仅保存模型的体系结构。它不会像model.save()那样保存其权重或训练配置。