前提・実現したいこと
実現したいこと:Mask R CNNを実行したい
以下の記事を参考に再現しようと、記載されたものと同様の手順で記載されたコードの実行を行いました。
https://qiita.com/Yooooo/items/3798c3f87393217cc219
使用したライブラリのバージョンは補足情報の欄に記載の通りです。
Mask_RCNNのgithubのrequirementsに指定のあった
tensorflowとkerasのverのみダウングレードし、
h5pyは以下の記事と同様のエラーが出たためバージョンを下げてインストールし直しました。
https://qiita.com/Hiroki-Fujimoto/items/b078bfb680fb710c38c1
発生している問題・エラーメッセージ
実行すると下記のようなエラーが出ます。
Python
1InvalidArgumentError Traceback (most recent call last) 2~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn) 3 653 graph_def_version, node_def_str, input_shapes, input_tensors, 4--> 654 input_tensors_as_shapes, status) 5 655 except errors.InvalidArgumentError as err: 6 7~\anaconda3\envs\mask_r_cnn_env\lib\contextlib.py in __exit__(self, type, value, traceback) 8 87 try: 9---> 88 next(self.gen) 10 89 except StopIteration: 11 12~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\errors_impl.py in raise_exception_on_not_ok_status() 13 465 compat.as_text(pywrap_tensorflow.TF_Message(status)), 14--> 466 pywrap_tensorflow.TF_GetCode(status)) 15 467 finally: 16 17InvalidArgumentError: Dimension 1 in both shapes must be equal, but are 324 and 8 for 'Assign_682' (op: 'Assign') with input shapes: [1024,324], [1024,8]. 18 19During handling of the above exception, another exception occurred: 20 21ValueError Traceback (most recent call last) 22<ipython-input-2-1b19d189f47c> in <module> 23 41 24 42 #学習データの指定 25---> 43 model.load_weights("mask_rcnn_balloon.h5", by_name=True) 26 44 27 45 #自分が表示したい画像を指定する 28 29~○○○\Mask_RCNN\mrcnn\model.py in load_weights(self, filepath, by_name, exclude) 30 2128 31 2129 if by_name: 32-> 2130 saving.load_weights_from_hdf5_group_by_name(f, layers) 33 2131 else: 34 2132 saving.load_weights_from_hdf5_group(f, layers) 35 36~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\keras\engine\topology.py in load_weights_from_hdf5_group_by_name(f, layers) 37 3156 weight_value_tuples.append((symbolic_weights[i], 38 3157 weight_values[i])) 39-> 3158 K.batch_set_value(weight_value_tuples) 40 41~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\keras\backend\tensorflow_backend.py in batch_set_value(tuples) 42 2186 assign_placeholder = tf.placeholder(tf_dtype, 43 2187 shape=value.shape) 44-> 2188 assign_op = x.assign(assign_placeholder) 45 2189 x._assign_placeholder = assign_placeholder 46 2190 x._assign_op = assign_op 47 48~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\ops\variables.py in assign(self, value, use_locking) 49 525 the assignment has completed. 50 526 """ 51--> 527 return state_ops.assign(self._variable, value, use_locking=use_locking) 52 528 53 529 def assign_add(self, delta, use_locking=False): 54 55~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\ops\state_ops.py in assign(ref, value, validate_shape, use_locking, name) 56 272 return gen_state_ops.assign( 57 273 ref, value, use_locking=use_locking, name=name, 58--> 274 validate_shape=validate_shape) 59 275 return ref.assign(value) 60 61~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\ops\gen_state_ops.py in assign(ref, value, validate_shape, use_locking, name) 62 41 result = _op_def_lib.apply_op("Assign", ref=ref, value=value, 63 42 validate_shape=validate_shape, 64---> 43 use_locking=use_locking, name=name) 65 44 return result 66 45 67 68~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\op_def_library.py in apply_op(self, op_type_name, name, **keywords) 69 765 op = g.create_op(op_type_name, inputs, output_types, name=scope, 70 766 input_types=input_types, attrs=attr_protos, 71--> 767 op_def=op_def) 72 768 if output_structure: 73 769 outputs = op.outputs 74 75~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\ops.py in create_op(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device) 76 2630 original_op=self._default_original_op, op_def=op_def) 77 2631 if compute_shapes: 78-> 2632 set_shapes_for_outputs(ret) 79 2633 self._add_op(ret) 80 2634 self._record_op_seen_by_control_dependencies(ret) 81 82~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\ops.py in set_shapes_for_outputs(op) 83 1909 shape_func = _call_cpp_shape_fn_and_require_op 84 1910 85-> 1911 shapes = shape_func(op) 86 1912 if shapes is None: 87 1913 raise RuntimeError( 88 89~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\ops.py in call_with_requiring(op) 90 1859 91 1860 def call_with_requiring(op): 92-> 1861 return call_cpp_shape_fn(op, require_shape_fn=True) 93 1862 94 1863 _call_cpp_shape_fn_and_require_op = call_with_requiring 95 96~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\common_shapes.py in call_cpp_shape_fn(op, require_shape_fn) 97 593 res = _call_cpp_shape_fn_impl(op, input_tensors_needed, 98 594 input_tensors_as_shapes_needed, 99--> 595 require_shape_fn) 100 596 if not isinstance(res, dict): 101 597 # Handles the case where _call_cpp_shape_fn_impl calls unknown_shape(op). 102 103~\anaconda3\envs\mask_r_cnn_env\lib\site-packages\tensorflow\python\framework\common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn) 104 657 missing_shape_fn = True 105 658 else: 106--> 659 raise ValueError(err.message) 107 660 108 661 if missing_shape_fn: 109 110ValueError: Dimension 1 in both shapes must be equal, but are 324 and 8 for 'Assign_682' (op: 'Assign') with input shapes: [1024,324], [1024,8].
試したこと・ご相談したいこと
エラーがmodel.load_weights(~~)の部分で起きていることとエラー文の内容から、重みファイルの形式がおかしいのかと思っているのですが、Qitaの記事では問題なく実行できていたため、自分の環境と何が異なってエラーになっているかが分かりません。
エラーの原因、加えてエラー無く実行できるようにするにはどうすればよいか、
ご存じの方がいらっしゃいましたら教えて頂きたいです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
python 3.6.13
keras 2.0.8
tensorflow 1.3.0
h5py 2.10.0
あなたの回答
tips
プレビュー