我尝试运行以下命令来保留:
python tensorflow/examples/image_retraining/retrain.py --image_dir ~/flower_photos --output_graph tf_output --output_labels tf_output
然后我得到了这个错误:
2017-04-21 00:44:15.386870: Step 3999: Validation accuracy = 95.0% (N=100)
Final test accuracy = 91.4% (N=385)
Converted 2 variables to const ops.
Traceback (most recent call last):
File "tensorflow/examples/image_retraining/retrain.py", line 1062, in <module>
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "/home/demo/anaconda3/envs/tfv1/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "tensorflow/examples/image_retraining/retrain.py", line 903, in main
f.write(output_graph_def.SerializeToString())
File "/home/demo/anaconda3/envs/tfv1/lib/python3.5/site-packages/tensorflow/python/lib/io/file_io.py", line 98, in write
self._prewrite_check()
File "/home/demo/anaconda3/envs/tfv1/lib/python3.5/site-packages/tensorflow/python/lib/io/file_io.py", line 84, in _prewrite_check
compat.as_bytes(self.__name), compat.as_bytes(self.__mode), status)
File "/home/demo/anaconda3/envs/tfv1/lib/python3.5/contextlib.py", line 66, in __exit__
next(self.gen)
File "/home/demo/anaconda3/envs/tfv1/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.FailedPreconditionError: tf_output
搜索后,我找到了这个线程,我通过删除输出路径完全按照他们说的做了
初始重新训练错误:tensorflow.python.framework.errors_impl.FailedPreconditionError
但是,我的问题是为什么?我有文件夹和空间的权限。我试图将文件夹移动到任何地方 /tf_output、tensorflow/tf_output、/home/demo/tf_output 并确保它具有递归 777 的演示用户所有者。
我仍然遇到同样的错误。那么 retrain.py 是否硬编码在某个地方指向 /tmp 仅用于输出?如何解决这个问题?
我也刚遇到这个问题。关键是要指定文件名的标志--output_labels
和--output_graph
。
所以使用你上面的例子,试试这个:
python tensorflow/examples/image_retraining/retrain.py --image_dir ~/flower_photos --output_graph tf_output/output_graph.pb --output_labels tf_output/retrained_labels.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句