mathematicaで作成しonnx形式へ変換したニューラルネットワークを、pythonのonnx2kerasモジュールでkeras形式へ変換しようとしたのですが、"AttributeError: Number of inputs is not equal 1 for unsqueeze layer"というエラーが出てしまいます。
「入力が1つでない」という意味だと思うのですが、確かに使用したニューラルネットワークには、複数のノードの出力を入力として受け取り、一つにまとめるノードが存在します。このようなネットワークの場合、onnxからkerasへの変換はできないのでしょうか?
どうすればこのエラーを回避することができるのでしょうか?
実行したプログラム
python3.7
1from tensorflow import keras 2import onnx2keras 3from onnx2keras import onnx_to_keras 4import onnx 5 6 7onnx_model = onnx.load('neuralnetwork.onnx') 8model = onnx_to_keras(onnx_model, ['Input'])
発生したエラー
AttributeError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_58744\3680059815.py in <module> 1 onnx_model = onnx.load('neuralnetwork.onnx') ----> 2 model = onnx_to_keras(onnx_model, ['Input']) ~\anaconda3\envs\py37\lib\site-packages\onnx2keras\converter.py in onnx_to_keras(onnx_model, input_names, input_shapes, name_policy, verbose, change_ordering) 179 lambda_funcs, 180 node_name, --> 181 keras_names 182 ) 183 if isinstance(keras_names, list): ~\anaconda3\envs\py37\lib\site-packages\onnx2keras\reshape_layers.py in convert_unsqueeze(node, params, layers, lambda_func, node_name, keras_name) 208 209 if len(node.input) != 1: --> 210 raise AttributeError('Number of inputs is not equal 1 for unsqueeze layer') 211 212 if is_numpy(layers[node.input[0]]): AttributeError: Number of inputs is not equal 1 for unsqueeze layer
あなたの回答
tips
プレビュー