将预训练模型从pytorch转换为keras时作用域名称错误



ValueError Traceback(最近的调用)/tmp/ipykernel_2113989/1063976035.py in11我们应该指定输入张量的形状——比;13 k_model = pytorch_to_keras(model, input_var, [(3,224, 224,)], verbose=True)14 #k_model = pytorch_to_keras(model, input_var, [(3, None, None,)], verbose=True)15

~/anaconda3/env/火炬/lib/python3.7/网站/pytorch2keras/converter.py在pytorch_to_keras(model, args, input_shapes, change_ordering,Verbose, name_policy, use_optimizer, do_constant_folding)82 k_model = onnx_to_keras(onnx_model=onnx_model, input_names=input_names,)83 input_shapes=input_shapes, name_policy=name_policy,——比;84 verbose=verbose, change_ordering=change_ordering)8586 return k_model

~/anaconda3/env/火炬/lib/python3.7/网站/onnx2keras/converter.py在onnx_to_keras(onnx_model, input_names, input_shapes, name_policy,冗长,change_ordering)179年 lambda_funcs,180年 node_name,——比;181年 keras_names182年 )183 if isinstance(keras_names, list):

~/anaconda3/env/火炬/lib/python3.7/网站/onnx2keras/operation_layers.py在convert_clip(node, params, layers, lambda_func, node_name,keras_name)39 lambda_func[keras_name] = target_layer . 3940——比;41 layers[node_name] = layer(input_0)4243

~/anaconda3/env/火炬/lib/python3.7/网站/tensorflow_core/python/keras/发动机/base_layer.py电话在(self, inputs, *args, **kwargs)819年 self.name)820 graph = backend.get_graph()——比;使用graph_as_default (), backend.name_scope(self._name_scope()):822 #构建层,如果适用(如果build方法已经823 # overridden).

~/anaconda3/env/火炬/lib/python3.7/网站/tensorflow_core/python/框架/ops.py在输入(self) 6442 else: 6443 scope =get_default_graph () .name_scope (self._name)→6444 scope_name = scope.enter() 6445 self._exit_fns.append(scope.exit)) 6446返回scope_name

~/anaconda3/envs/torch/lib/python3.7/contextlib.py 输入(自我)110 del self。args,自我。kwds, self.func111年试题:——比;112 return next(self.gen)113除了StopIteration:114抛出RuntimeError("generator didn't yield") from None

~/anaconda3/env/火炬/lib/python3.7/网站/tensorflow_core/python/框架/ops.py在name_scope(self, name) 4127 # op name regex中限制初始字符。4128如果不是_VALID_OP_NAME_REGEX.match(名称):→4129抛出ValueError("'%s'不是一个有效的作用域名称"% name) 4130 old_stack = self。如果不是,_name_stack 4131name: # Both for name=None and name="我们重新设置为空作用域

ValueError: 'onnx::Conv_369'不是一个有效的作用域名称

我正在尝试通过pytorch2keras (https://github.com/gmalivenko/pytorch2keras)将pytorch预训练模型转换为keras。

我试图安装旧版本的Onnx(1.8.1),并试图从主分支(https://github.com/onnx/onnx)安装Onnx。

然而,我仍然面对错误。我可以知道怎么解决吗?

尝试为onnx_2_keras设置name_policy='renumerate'或name_policy='short'。

我也遇到过同样的问题。在我的例子中,我用PyTorch创建了一个自定义CNN当转换为时,Keras我得到了作用域名称冲突。设置选项name_policy=' rename '

相关内容

  • 没有找到相关文章

最新更新