0

这个问题最初发布在 tflearn github repo 上,但我在那里没有运气: https ://github.com/tflearn/tflearn/issues/682

我正在尝试从自动编码器中保存代表中间层的编码器模型。使用 MNIST 示例,当我运行此处找到的脚本时:

https://github.com/tflearn/tflearn/blob/master/examples/images/autoencoder.py

然后尝试使用保存 encoding_model

encoding_model = tflearn.DNN(encoder, session=model.session)
encoding_model.save('encoder.tfl')

我收到以下错误消息:

回溯(最后一次调用):文件“”,第 1 行,在文件“/usr/local/lib/python2.7/dist-packages/tflearn/models/dnn.py”,第 260 行,保存 self.trainer .save(model_file) 文件“/usr/local/lib/python2.7/dist-packages/tflearn/helpers/trainer.py”,第 376 行,保存 self.saver.save(self.session, model_file, global_step= global_step) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py”,第 1363 行,保存 {self.saver_def.filename_tensor_name: checkpoint_file}) 文件“/usr/ local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第 767 行,运行 run_metadata_ptr) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python /client/session.py",第 965 行,在 _run feed_dict_string、options、run_metadata) 文件中"/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第 1015 行,在 _do_run 目标列表,选项,run_metadata)文件“/usr/local/lib/python2.7/ dist-packages/tensorflow/python/client/session.py”,第 1035 行,在 _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Global_Step_1 [[节点:Global_Step_1/_96 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0 /gpu:0", send_device_incarnation=1, tensor_name="edge_31_Global_Step_1", _device="/job:localhost/replica:0/task:0/gpu:0"]]在 _do_run target_list, options, run_metadata) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第 1035 行,在 _do_call raise type(e)(node_def, op , 消息) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Global_Step_1 [[Node: Global_Step_1/_96 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0 /cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_31_Global_Step_1", _device="/job:localhost/replica:0/task :0/gpu:0"]]在 _do_run target_list, options, run_metadata) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第 1035 行,在 _do_call raise type(e)(node_def, op , 消息) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Global_Step_1 [[Node: Global_Step_1/_96 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0 /cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_31_Global_Step_1", _device="/job:localhost/replica:0/task :0/gpu:0"]]消息) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Global_Step_1 [[Node: Global_Step_1/_96 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/ cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_31_Global_Step_1", _device="/job:localhost/replica:0/task: 0/gpu:0"]]消息) tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Global_Step_1 [[Node: Global_Step_1/_96 = _SendT=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/ cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_31_Global_Step_1", _device="/job:localhost/replica:0/task: 0/gpu:0"]]_device="/job:localhost/replica:0/task:0/gpu:0"]]_device="/job:localhost/replica:0/task:0/gpu:0"]]

我认为 ADAM 优化器变量未初始化。保存这样的模型的正确方法是什么?

4

1 回答 1

0

在 tensorflow 中,您不会保存到 .tfl 文件中。

saver = tf.train.Saver()

然后保存到 .cpkt

查看有关保存的本教程: https ://www.tensorflow.org/programmers_guide/saved_model

于 2017-11-21T15:52:15.653 回答