解决:
1,清除logs日志,就是训练产生的checkpoint文件,其他文件也不能留。方法无效
2,存放模型的地方只保留需要的模型。方法无效
3,执行评估程序eval_ssd_network.py参数改为:
--eval_dir=./logs/
--dataset_dir=./tfrecords
--dataset_name=pascalvoc_2007
--dataset_split_name=test
--model_name=ssd_300_vgg #原来的模型,网络层需要,还不知道怎么修改
--checkpoint_path=./checkpoints/model.ckpt-25037 #自己训练的模型名字
--batch_size=1
主要改的地方就是checkpoint_path的模型,一定要改为和你训练数据相匹配的训练模型路径名字,感觉和logs和其他缓存关系不大。
具体错误信息如下:
INFO:tensorflow:Restoring parameters from ./checkpoints/VGG_VOC0712_SSD_300x300_ft_iter_120000.ckpt
Traceback (most recent call last):
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1322, in _do_call
return fn(*args)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1307, in _run_fn
options, feed_dict, fetch_list, target_list, run_metadata)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1409, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [3,3,256,8] rhs shape= [3,3,256,84]
[[Node: save/Assign_6 = Assign[T=DT_FLOAT, _class=["loc:@ssd_300_vgg/block10_box/conv_cls/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ssd_300_vgg/block10_box/conv_cls/weights, save/RestoreV2:6)]]
[[Node: save/RestoreV2/_29 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_58_save/RestoreV2", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/work/SSD-Tensorflow-master/eval_ssd_network.py", line 364, in
tf.app.run()
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\platform\app.py", line 125, in run
_sys.exit(main(argv))
File "D:/work/SSD-Tensorflow-master/eval_ssd_network.py", line 338, in main
session_config=config)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\contrib\slim\python\slim\evaluation.py", line 212, in evaluate_once
config=session_config)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\evaluation.py", line 209, in _evaluate_once
session_creator=session_creator, hooks=hooks) as session:
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 826, in __init__
stop_grace_period_secs=stop_grace_period_secs)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 549, in __init__
self._sess = _RecoverableSession(self._coordinated_creator)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 1012, in __init__
_WrappedSession.__init__(self, self._create_session())
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 1017, in _create_session
return self._sess_creator.create_session()
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 706, in create_session
self.tf_sess = self._session_creator.create_session()
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\monitored_session.py", line 477, in create_session
init_fn=self._scaffold.init_fn)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\session_manager.py", line 281, in prepare_session
config=config)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\session_manager.py", line 195, in _restore_checkpoint
saver.restore(sess, checkpoint_filename_with_path)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 1752, in restore
{self.saver_def.filename_tensor_name: save_path})
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 900, in run
run_metadata_ptr)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1135, in _run
feed_dict_tensor, options, run_metadata)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1316, in _do_run
run_metadata)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\client\session.py", line 1335, 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= [3,3,256,8] rhs shape= [3,3,256,84]
[[Node: save/Assign_6 = Assign[T=DT_FLOAT, _class=["loc:@ssd_300_vgg/block10_box/conv_cls/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ssd_300_vgg/block10_box/conv_cls/weights, save/RestoreV2:6)]]
[[Node: save/RestoreV2/_29 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_58_save/RestoreV2", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
Caused by op 'save/Assign_6', defined at:
File "D:/work/SSD-Tensorflow-master/eval_ssd_network.py", line 364, in
tf.app.run()
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\platform\app.py", line 125, in run
_sys.exit(main(argv))
File "D:/work/SSD-Tensorflow-master/eval_ssd_network.py", line 338, in main
session_config=config)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\contrib\slim\python\slim\evaluation.py", line 200, in evaluate_once
saver = tf_saver.Saver(variables_to_restore)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 1284, in __init__
self.build()
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 1296, in build
self._build(self._filename, build_save=True, build_restore=True)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 1333, in _build
build_save=build_save, build_restore=build_restore)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 781, in _build_internal
restore_sequentially, reshape)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 422, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\training\saver.py", line 113, in restore
self.op.get_shape().is_fully_defined())
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\ops\state_ops.py", line 219, in assign
validate_shape=validate_shape)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\ops\gen_state_ops.py", line 63, in assign
use_locking=use_locking, name=name)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\framework\ops.py", line 3414, in create_op
op_def=op_def)
File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\framework\ops.py", line 1740, 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= [3,3,256,8] rhs shape= [3,3,256,84]
[[Node: save/Assign_6 = Assign[T=DT_FLOAT, _class=["loc:@ssd_300_vgg/block10_box/conv_cls/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ssd_300_vgg/block10_box/conv_cls/weights, save/RestoreV2:6)]]
[[Node: save/RestoreV2/_29 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_58_save/RestoreV2", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
Process finished with exit code 1