ValueError: Dimension 1 in both shapes must be equal, but are 8 and 324 for 'Assign_376' (op: 'Assig
阿新 • • 發佈:2018-11-03
使用Mask-RCNN測試細胞資料集的時候,出現了以下錯誤:
Loading weights ../../path/to/weights.h5 Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/common_shapes.py", line 654, in _call_cpp_shape_fn_impl input_tensors_as_shapes, status) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/contextlib.py", line 88, in __exit__ next(self.gen) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/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: Dimension 1 in both shapes must be equal, but are 8 and 324 for 'Assign_376' (op: 'Assign') with input shapes: [1024,8], [1024,324]. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/ubuntu/Pycharm_Projection/Mask_RCNN-master/samples/nucleus/nucleus.py", line 484, in <module> model.load_weights(weights_path, by_name=True) File "/home/ubuntu/Pycharm_Projection/Mask_RCNN-master/mrcnn/model.py", line 2130, in load_weights saving.load_weights_from_hdf5_group_by_name(f, layers) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/keras/engine/topology.py", line 3158, in load_weights_from_hdf5_group_by_name K.batch_set_value(weight_value_tuples) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 2188, in batch_set_value assign_op = x.assign(assign_placeholder) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/ops/variables.py", line 527, in assign return state_ops.assign(self._variable, value, use_locking=use_locking) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py", line 274, in assign validate_shape=validate_shape) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/ops/gen_state_ops.py", line 43, in assign use_locking=use_locking, name=name) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 767, in apply_op op_def=op_def) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2632, in create_op set_shapes_for_outputs(ret) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1911, in set_shapes_for_outputs shapes = shape_func(op) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1861, in call_with_requiring return call_cpp_shape_fn(op, require_shape_fn=True) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/common_shapes.py", line 595, in call_cpp_shape_fn require_shape_fn) File "/home/ubuntu/anaconda3/envs/tensorflow1.3/lib/python3.6/site-packages/tensorflow/python/framework/common_shapes.py", line 659, in _call_cpp_shape_fn_impl raise ValueError(err.message) ValueError: Dimension 1 in both shapes must be equal, but are 8 and 324 for 'Assign_376' (op: 'Assign') with input shapes: [1024,8], [1024,324]. Process finished with exit code 1
由於使用的h5權重檔案是官方的檔案,官方的h5總共是80類,因此需要將
NUM_CLASSES = 1 + 1
改為:
NUM_CLASSES = 1 + 80,
最後正常執行!
參考連結:https://blog.csdn.net/qq_15969343/article/details/80559154