tensorflow 生成pb文件(训练结束后用官方提供的脚本手动生成)
2017-09-04 16:05
477 查看
注意我这个记录是跟着官网的object_detection做目标检测做的,配置文件什么的也是改的现成的,所以转pb文件会相对方便点,如果完全是自己训练模型准备数据,可能不太适合这么做,不过大神的话可以试着改一下export_inference_graph.py这个生成pb文件的脚本
网上有很多是在训练模型的时候在构造模型时添加input和output标签,训练完后自动生成pb文件,如果是复杂模型而且又是新手用的也是官网提供的现成代码,根本不知道在哪里加这两个参数
注意到在文件./models-master/object_detection/export_inference_graph.py,可以手动实现产生pb文件,文件在一开始也简单说明了怎么做,接下来具体说一下,
当你训练结束后会得到graph.pbtxt和三个model.ckpt-××××文件(这三个文件是在你的训练结果中挑出来的)我训练了50000次,取的是最后一组,也就是model.ckpt-50000.data-00000-of-00001,model.ckpt-50000.index,model.ckpt-50000.meta这三个了。
准备好以上三个后还要你训练用的配置文件:××××_label_map.pbtxt,train.record,val.record,ssd_mobilenet_v1_pets.config
这些都有了就是运行现成脚本了,我的命令行是这样的:
python -u /home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py \
--input_type=image_tensor \
--pipeline_config_path=/home/saners/Mobilenet/MobilenetTest/data/ssd_mobilenet_v1_pets.config \
--trained_checkpoint_prefix=/home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt-50000 \
--output_directory=/home/saners/Mobilenet/MobilenetTest/data
注意:.config是你训练时用的那个,不要拿来一个没有改过的,model.ckpt-50000要写成类似我这样的,不然会报错:
2017-09-04 15:58:21.078121: W tensorflow/core/framework/op_kernel.cc:1192] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
Traceback (most recent call last):
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 108, in <module>
tf.app.run()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 104, in main
FLAGS.output_directory)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 295, in _write_graph_and_checkpoint
saver.restore(sess, trained_checkpoint_prefix)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1560, in restore
{self.saver_def.filename_tensor_name: save_path})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 889, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1118, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1315, in _do_run
options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1334, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
[[Node: save/RestoreV2_101 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save/Const_0_0, save/RestoreV2_101/tensor_names, save/RestoreV2_101/shape_and_slices)]]
[[Node: save/RestoreV2_50/_163 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_564_save/RestoreV2_50",
tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
Caused by op u'save/RestoreV2_101', defined at:
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 108, in <module>
tf.app.run()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 104, in main
FLAGS.output_directory)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 291, in _write_graph_and_checkpoint
tf.import_graph_def(inference_graph_def, name='')
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 313, in import_graph_def
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3045, in create_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1603, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
[[Node: save/RestoreV2_101 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save/Const_0_0, save/RestoreV2_101/tensor_names, save/RestoreV2_101/shape_and_slices)]]
[[Node: save/RestoreV2_50/_163 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_564_save/RestoreV2_50",
tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
网上有很多是在训练模型的时候在构造模型时添加input和output标签,训练完后自动生成pb文件,如果是复杂模型而且又是新手用的也是官网提供的现成代码,根本不知道在哪里加这两个参数
注意到在文件./models-master/object_detection/export_inference_graph.py,可以手动实现产生pb文件,文件在一开始也简单说明了怎么做,接下来具体说一下,
当你训练结束后会得到graph.pbtxt和三个model.ckpt-××××文件(这三个文件是在你的训练结果中挑出来的)我训练了50000次,取的是最后一组,也就是model.ckpt-50000.data-00000-of-00001,model.ckpt-50000.index,model.ckpt-50000.meta这三个了。
准备好以上三个后还要你训练用的配置文件:××××_label_map.pbtxt,train.record,val.record,ssd_mobilenet_v1_pets.config
这些都有了就是运行现成脚本了,我的命令行是这样的:
python -u /home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py \
--input_type=image_tensor \
--pipeline_config_path=/home/saners/Mobilenet/MobilenetTest/data/ssd_mobilenet_v1_pets.config \
--trained_checkpoint_prefix=/home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt-50000 \
--output_directory=/home/saners/Mobilenet/MobilenetTest/data
注意:.config是你训练时用的那个,不要拿来一个没有改过的,model.ckpt-50000要写成类似我这样的,不然会报错:
2017-09-04 15:58:21.078121: W tensorflow/core/framework/op_kernel.cc:1192] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
Traceback (most recent call last):
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 108, in <module>
tf.app.run()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 104, in main
FLAGS.output_directory)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 295, in _write_graph_and_checkpoint
saver.restore(sess, trained_checkpoint_prefix)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1560, in restore
{self.saver_def.filename_tensor_name: save_path})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 889, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1118, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1315, in _do_run
options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1334, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
[[Node: save/RestoreV2_101 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save/Const_0_0, save/RestoreV2_101/tensor_names, save/RestoreV2_101/shape_and_slices)]]
[[Node: save/RestoreV2_50/_163 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_564_save/RestoreV2_50",
tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
Caused by op u'save/RestoreV2_101', defined at:
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 108, in <module>
tf.app.run()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "/home/saners/Mobilenet/models-master/object_detection/export_inference_graph.py", line 104, in main
FLAGS.output_directory)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/saners/Mobilenet/models-master/object_detection/exporter.py", line 291, in _write_graph_and_checkpoint
tf.import_graph_def(inference_graph_def, name='')
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 313, in import_graph_def
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3045, in create_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1603, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/saners/Mobilenet/MobilenetTest/data/aircraft/model.ckpt
[[Node: save/RestoreV2_101 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save/Const_0_0, save/RestoreV2_101/tensor_names, save/RestoreV2_101/shape_and_slices)]]
[[Node: save/RestoreV2_50/_163 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_564_save/RestoreV2_50",
tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
相关文章推荐
- 如何用Tensorflow训练模型成pb文件和和如何加载已经训练好的模型文件
- 如何用Tensorflow训练模型成pb文件(一)——基于原始图片的读取
- 现代英特尔® 架构上的 TensorFlow* 优化——正如去年参加Intel AI会议一样,Intel自己提供了对接自己AI CPU优化版本的Tensorflow,下载链接见后,同时可以基于谷歌官方的tf版本直接编译生成安装包
- 将TensorFlow模型变为pb——官方本身提供API,直接调用即可
- 使用C#把Tensorflow训练的.pb文件用在生产环境
- 如何用Tensorflow训练模型成pb文件(二)——基于tfrecord的读取
- 如何用Tensorflow训练模型成pb文件和和如何加载已经训练好的模型文件
- 如何用Tensorflow训练模型成pb文件和和如何加载已经训练好的模型文件
- 生成hdf5文件用于多标签训练
- py2exe将脚本生成exe可执行文件,不用安装复杂的环境了
- 全面解析Unity3D自动生成的脚本工程文件
- 生成hdf5文件用于多标签训练
- TensorFlow 生成 .ckpt 和 .pb
- #Shell脚本 -- 由json文件生成sql
- WCF HTTP 错误 404.3 - Not Found(由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。)
- 监控linux系统某文件的生成,并进行另一个脚本
- 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
- TensorFlow官方文档疑问: 在达到最大训练迭代数的时候如何清理关闭线程?
- Direct9入门教程|Direct9官方提供的tutorial文件自己翻译的|DirectX创建设备
- 使用Unity3d官方提供得精简版xml解析脚本Mono.xml