TFLearn 在加载经过训练的模型时抛出错误
TFLearn throws error while loading trained model
我是 TFLearn 和 Tensorflow 的新手,我尝试通过制作关于任何任务的神经网络来了解它们。我成功地训练了一个模型来对推文进行情绪分析。我用 model.save(path)
来保存我的模型。
现在,当我 运行 model.load(path)
时,它会抛出一个错误。具体来说,从文件加载模型的代码是这样的:
def loadModel(model = None, max_size=40, path="model.save"):
# Load the saved model from the specified path
global VOCABULARY_SIZE
if model == None:
plh = tf.placeholder(tf.float32, shape = (None, max_size)) # Creates a Placeholder that is used in buildNetwork() to create the input layer.
model = buildNetwork(plh, dictionary_size=len(VOCABULARY_SIZE))
# At this point, the model has the same architecture as the trained one.
model = model.load(path)
return model
我的错误是:
NotFoundError: Tensor name "Embedding_1/W" not found in checkpoint files model.save
[[Node: save_11/restore_slice_1 = RestoreSlice[dt=DT_FLOAT, preferred_shard=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_11/Const_0, save_11/restore_slice_1/tensor_name, save_11/restore_slice_1/shape_and_slice)]]
Caused by op u'save_11/restore_slice_1', defined at:
File "/opt/local/bin/ipython", line 5, in <module>
start_ipython()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/__init__.py", line 119, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 348, in start
self.shell.mainloop()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/interactiveshell.py", line 440, in mainloop
self.interact()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/interactiveshell.py", line 431, in interact
self.run_cell(code, store_history=True)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2717, in run_cell
interactivity=interactivity, compiler=compiler, result=result)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2827, in run_ast_nodes
if self.run_code(code, result):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-7-2cfc4af80f36>", line 1, in <module>
stm_a.loadModelandVocabulary()
File "stm_a.py", line 42, in loadModelandVocabulary
model = buildNetwork(plh, dictionary_size=len(vocabulary_object.vocabulary_))
File "stm_a.py", line 98, in buildNetwork
return tflearn.DNN(g, checkpoint_path = checkpoint_path)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tflearn/models/dnn.py", line 63, in __init__
best_val_accuracy=best_val_accuracy)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tflearn/helpers/trainer.py", line 142, in __init__
keep_checkpoint_every_n_hours=keep_checkpoint_every_n_hours)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 861, in __init__
restore_sequentially=restore_sequentially)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 519, in build
filename_tensor, vars_to_save, restore_sequentially, reshape)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 272, in _AddRestoreOps
values = self.restore_op(filename_tensor, vs, preferred_shard)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 187, in restore_op
preferred_shard=preferred_shard)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/ops/io_ops.py", line 203, in _restore_slice
preferred_shard, name=name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/ops/gen_io_ops.py", line 359, in _restore_slice
preferred_shard=preferred_shard, name=name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
op_def=op_def)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/ops.py", line 2317, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/ops.py", line 1239, in __init__
self._traceback = _extract_stack()
我发现我的输入层后面的嵌入层有问题。我对该层使用这些 (默认) 参数:trainable=True, restore=True, reuse=False
.
我是新手,所以我不知道如何正确调试 TFLearn 和 Tensorflow 错误。
感谢任何帮助!
我不确定你的问题是什么,但 model.load()
return 没有任何问题。这是来自 tflearn 的示例用法:
model = DNN(network)
model.load('model.tflearn')
model.predict(X)
您正在将 model
分配给 None
。
我是 TFLearn 和 Tensorflow 的新手,我尝试通过制作关于任何任务的神经网络来了解它们。我成功地训练了一个模型来对推文进行情绪分析。我用 model.save(path)
来保存我的模型。
现在,当我 运行 model.load(path)
时,它会抛出一个错误。具体来说,从文件加载模型的代码是这样的:
def loadModel(model = None, max_size=40, path="model.save"):
# Load the saved model from the specified path
global VOCABULARY_SIZE
if model == None:
plh = tf.placeholder(tf.float32, shape = (None, max_size)) # Creates a Placeholder that is used in buildNetwork() to create the input layer.
model = buildNetwork(plh, dictionary_size=len(VOCABULARY_SIZE))
# At this point, the model has the same architecture as the trained one.
model = model.load(path)
return model
我的错误是:
NotFoundError: Tensor name "Embedding_1/W" not found in checkpoint files model.save
[[Node: save_11/restore_slice_1 = RestoreSlice[dt=DT_FLOAT, preferred_shard=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save_11/Const_0, save_11/restore_slice_1/tensor_name, save_11/restore_slice_1/shape_and_slice)]]
Caused by op u'save_11/restore_slice_1', defined at:
File "/opt/local/bin/ipython", line 5, in <module>
start_ipython()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/__init__.py", line 119, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 348, in start
self.shell.mainloop()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/interactiveshell.py", line 440, in mainloop
self.interact()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/terminal/interactiveshell.py", line 431, in interact
self.run_cell(code, store_history=True)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2717, in run_cell
interactivity=interactivity, compiler=compiler, result=result)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2827, in run_ast_nodes
if self.run_code(code, result):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-7-2cfc4af80f36>", line 1, in <module>
stm_a.loadModelandVocabulary()
File "stm_a.py", line 42, in loadModelandVocabulary
model = buildNetwork(plh, dictionary_size=len(vocabulary_object.vocabulary_))
File "stm_a.py", line 98, in buildNetwork
return tflearn.DNN(g, checkpoint_path = checkpoint_path)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tflearn/models/dnn.py", line 63, in __init__
best_val_accuracy=best_val_accuracy)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tflearn/helpers/trainer.py", line 142, in __init__
keep_checkpoint_every_n_hours=keep_checkpoint_every_n_hours)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 861, in __init__
restore_sequentially=restore_sequentially)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 519, in build
filename_tensor, vars_to_save, restore_sequentially, reshape)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 272, in _AddRestoreOps
values = self.restore_op(filename_tensor, vs, preferred_shard)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/training/saver.py", line 187, in restore_op
preferred_shard=preferred_shard)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/ops/io_ops.py", line 203, in _restore_slice
preferred_shard, name=name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/ops/gen_io_ops.py", line 359, in _restore_slice
preferred_shard=preferred_shard, name=name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
op_def=op_def)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/ops.py", line 2317, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python/tensorflow/python/framework/ops.py", line 1239, in __init__
self._traceback = _extract_stack()
我发现我的输入层后面的嵌入层有问题。我对该层使用这些 (默认) 参数:trainable=True, restore=True, reuse=False
.
我是新手,所以我不知道如何正确调试 TFLearn 和 Tensorflow 错误。
感谢任何帮助!
我不确定你的问题是什么,但 model.load()
return 没有任何问题。这是来自 tflearn 的示例用法:
model = DNN(network)
model.load('model.tflearn')
model.predict(X)
您正在将 model
分配给 None
。