1

我使用 Keras 训练了一个 DNN。但是,我无法保存和加载模型。

from keras.models import load_model
model.save('/home/ubuntu/pynb/savedmodel.tfl')
#model.load('/home/ubuntu/pynb/savedmodel.tfl')

但我发现不是 savedmodel.tfl 文件,而是 3 个扩展名为 .meta、.index 和 .data.00000-of-00001 的文件。因此,当我尝试使用 model.load 加载时,它说找不到该文件。

我还尝试了 SO 上建议的其他替代方案

model_json = model.to_json()

但我得到一个错误 AttributeError: 'DNN' object has no attribute '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)
4

1 回答 1

1

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

一旦您将模型转换为 Keras 模型(如果您选择),此视频将介绍 Keras 提供的不同保存和加载机制。

另外,只是一个简短的说明,model.to_json()只保存模型的架构。它不会像保存它的权重或训练配置一样model.save()

于 2017-10-12T02:06:44.567 回答