Assign requires shapes of both tensors to match. lhs shape= [3,3,256,8] rhs shape= [3,3,256,84]

解决:

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 <module>
    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 <module>
    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


 

猜你喜欢

转载自blog.csdn.net/huachuchengzhang/article/details/88640687
今日推荐