faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]

faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]

 1 Traceback (most recent call last):
 2   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\training\saver.py", line 1276, in restore
 3     {self.saver_def.filename_tensor_name: save_path})
 4   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 929, in run
 5     run_metadata_ptr)
 6   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1152, in _run
 7     feed_dict_tensor, options, run_metadata)
 8   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1328, in _do_run
 9     run_metadata)
10   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1348, in _do_call
11     raise type(e)(node_def, op, message)
12 tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]
13      [[node save/Assign_517 (defined at G:/jianfeng/project/rubblish_det/faster_rcnn/tf-faster-rcnn-master/tools/demo.py:149) ]]

我的代码来自 https://github.com/endernewton/tf-faster-rcnn

这是由于类别数目不一致,导致的 ;看错误信息倒数第二行,lhs为21类 rhs为2类

解决方法:在demo.py文件中找到下面两行代码,将 "TEST"后的21改为 2 因为我的数据类别是 background+单类别=2

1 net.create_architecture("TEST", 21,
2                        tag='default', anchor_scales=[8, 16, 32])