After training the pet model in according to the directions here and here, specifically training on a local machine, I tried to export my model. This is where I seem to be running into issues. After running the command
python export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path ssd_mobilenet_v1_pets.config
--trained_checkout_prefix data/model.ckpt
--output_directory output_inference_graph.pb
I run into the follow
2017-09-22 08:59:26.159018: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.2405
pciBusID 0000:03:00.0
Total memory: 11.92GiB
Free memory: 11.81GiB
2017-09-22 08:59:26.159073: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0
2017-09-22 08:59:26.159083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y
2017-09-22 08:59:26.159096: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:03:00.0)
2017-09-22 08:59:27.246947: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.250254: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.250456: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.254837: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.255132: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.255752: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.257124: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.257963: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.259200: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.260032: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.260870: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.261117: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.264178: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.264817: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.264883: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.265083: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.265378: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.265646: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.265724: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.266107: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.266684: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
2017-09-22 08:59:27.267486: W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
Traceback (most recent call last):
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1327, in _do_call
return fn(*args)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1306, in _run_fn
status, run_metadata)
File "/home/frank/anaconda3/lib/python3.6/contextlib.py", line 89, in __exit__
next(self.gen)
File "/home/frank/anaconda3/lib/python3.6/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.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "export_inference_graph.py", line 106, in <module>
tf.app.run()
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "export_inference_graph.py", line 102, in main
FLAGS.output_directory)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 295, in _write_graph_and_checkpoint
saver.restore(sess, trained_checkpoint_prefix)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1560, in restore
{self.saver_def.filename_tensor_name: save_path})
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 895, in run
run_metadata_ptr)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1124, in _run
feed_dict_tensor, options, run_metadata)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1321, in _do_run
options, run_metadata)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1340, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
Caused by op 'save/Assign_10', defined at:
File "export_inference_graph.py", line 106, in <module>
tf.app.run()
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "export_inference_graph.py", line 102, in main
FLAGS.output_directory)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 376, in export_inference_graph
optimize_graph, output_collection_name)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 336, in _export_inference_graph
trained_checkpoint_prefix=trained_checkpoint_prefix)
File "/home/frank/tensorflow/models/research/object_detection/exporter.py", line 291, in _write_graph_and_checkpoint
tf.import_graph_def(inference_graph_def, name='')
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/importer.py", line 313, in import_graph_def
op_def=op_def)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2630, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/frank/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1204, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [228] rhs shape= [546]
[[Node: save/Assign_10 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_2/ClassPredictor/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_2/ClassPredictor/biases, save/RestoreV2_10/_25)]]
Please let me know if you need anything else!
Thanks!
I am having the same issue :/
@tombstone can you comment on this?
Hi There,
We are checking to see if you still need help on this, as this seems to be considerably old issue. Please update this issue with the latest information, code snippet to reproduce your issue and error you are seeing.
If we don't hear from you in the next 7 days, this issue will be closed automatically. If you don't need help on this issue any more, please consider closing this.
Most helpful comment
I am having the same issue :/