如何从文件中导入(恢复)tflearn构建的神经网络模型
How to import(restore) Neural network model built by tflearn from files
我指的是 this tutorial 关于文本分类的内容,并为文本分类构建了自定义训练集。
我正在使用以下代码保存模型。
# Define model and setup tensorboard
model = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
# Start training (apply gradient descent algorithm)
model.fit(train_x, train_y, n_epoch=1000, batch_size=8, show_metric=True)
model.save('model.tflearn')
这会生成以下文件。
model.tflearn.data-00000-of-00001
model.tflearn.index
model.tflearn.meta
tflearn_logs folder
我想使用在不同迭代中构建的模型进行测试。
我试过了,
with tf.Session() as sess:
saver = tf.train.import_meta_graph('model.tflearn.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))
但我明白了;
KeyError: "The name 'adam' refers to an Operation not in the graph." error
我知道 from documentation tflearn.DNN(network).load('file_name')
加载了一个模型,但我们需要创建并传递网络实例,为了构建网络,我们再次从头开始执行相同的代码,这需要时间,因为它将进行我想避免的训练。
构建网络的代码
net = tflearn.input_data(shape=[None, len(train_x[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(train_y[0]), activation='softmax')
net = tflearn.regression(net)
tflearn.input_data
强制输入形状,因此我们将再次需要输入训练数据 again.So 它会导致重建模型。
我检查了文档,找不到我需要的东西(2-3 行代码将导入构建神经网络模型以节省再训练时间。
如果你们知道解决方案,请告诉我。
但不重复
- OP 在构建树期间构建神经网络时遇到问题,而我在导入构建模型时遇到问题。
- 答案中提到的教程没有tflearn NN模型导入
我能够使用以下代码恢复保存的模型。
tflearn
可以从保存的日志和模型文件恢复模型。
创建与保存的模型大小相同的虚拟神经网络
注意:您可能需要跟踪以前保存的模型的权重(输入训练的大小和相应的类)
net = tflearn.input_data(shape=[None, train_x[0]])
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, train_y[0], activation='softmax', restore=False)
dnn = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
将保存的模型加载到 DNN
model = dnn.load('./model.tflearn')
使用加载的模型进行预测
test_data = ###converted data
model.predict(test_data)
我指的是 this tutorial 关于文本分类的内容,并为文本分类构建了自定义训练集。
我正在使用以下代码保存模型。
# Define model and setup tensorboard
model = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
# Start training (apply gradient descent algorithm)
model.fit(train_x, train_y, n_epoch=1000, batch_size=8, show_metric=True)
model.save('model.tflearn')
这会生成以下文件。
model.tflearn.data-00000-of-00001
model.tflearn.index
model.tflearn.meta
tflearn_logs folder
我想使用在不同迭代中构建的模型进行测试。
我试过了,
with tf.Session() as sess:
saver = tf.train.import_meta_graph('model.tflearn.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))
但我明白了;
KeyError: "The name 'adam' refers to an Operation not in the graph." error
我知道 from documentation tflearn.DNN(network).load('file_name')
加载了一个模型,但我们需要创建并传递网络实例,为了构建网络,我们再次从头开始执行相同的代码,这需要时间,因为它将进行我想避免的训练。
构建网络的代码
net = tflearn.input_data(shape=[None, len(train_x[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(train_y[0]), activation='softmax')
net = tflearn.regression(net)
tflearn.input_data
强制输入形状,因此我们将再次需要输入训练数据 again.So 它会导致重建模型。
我检查了文档,找不到我需要的东西(2-3 行代码将导入构建神经网络模型以节省再训练时间。
如果你们知道解决方案,请告诉我。
- OP 在构建树期间构建神经网络时遇到问题,而我在导入构建模型时遇到问题。
- 答案中提到的教程没有tflearn NN模型导入
我能够使用以下代码恢复保存的模型。
tflearn
可以从保存的日志和模型文件恢复模型。
创建与保存的模型大小相同的虚拟神经网络
注意:您可能需要跟踪以前保存的模型的权重(输入训练的大小和相应的类)
net = tflearn.input_data(shape=[None, train_x[0]])
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, 8, restore=False)
net = tflearn.fully_connected(net, train_y[0], activation='softmax', restore=False)
dnn = tflearn.DNN(net, tensorboard_dir='tflearn_logs')
将保存的模型加载到 DNN
model = dnn.load('./model.tflearn')
使用加载的模型进行预测
test_data = ###converted data
model.predict(test_data)