我正在使用谷歌colab.我想转换.pt模型从我的谷歌驱动器到.h5模型.我按照链接https://github.com/gmalivenko/pytorch2keras和https://www.programmersought.com/article/57938937172/和安装库,并编写代码如下:
%pip install pytorch2keras
%pip install onnx==1.8.1
个字符
但它给我的错误是:
WARNING:pytorch2keras:Custom shapes isn't supported now.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-53-eef217a11c8a> in <module>()
8 input_var = Variable(torch.FloatTensor(input_np))
9 model='/content/gdrive/MyDrive/model.pt'
---> 10 pytorch_to_keras(model,input_np,input_shapes= [(10, 32, 32,)], verbose=True)
11
12
/usr/local/lib/python3.7/dist-packages/pytorch2keras/converter.py in pytorch_to_keras(model, args, input_shapes, change_ordering, verbose, name_policy, use_optimizer, do_constant_folding)
51 args = tuple(args)
52
---> 53 dummy_output = model(*args)
54
55 if isinstance(dummy_output, torch.autograd.Variable):
TypeError: 'str' object is not callable
型
4条答案
按热度按时间gijlo24d1#
啊,PyTorch到Tensorflow的经典问题。多年来,许多库来来去去,但我发现ONNX的工作最一致。你可以尝试这样的东西。
PyTorch特有的是Dynamic Computational Graph。动态计算图意味着PyTorch模型可以动态适应不同的输入大小。您可以指定哪些轴需要动态调整大小。下面是一些将CNN从PyTorch转换为ONNX的最小代码。
字符串
还可以将模型的高度和宽度设置为动态输入大小,
型
接下来,我们将ONNX模型转换为Tensorflow SavedModel。
型
tf_model
现在是一个Tensorflow SavedModel。zlwx9yxi2#
看起来你还没有导入pytorch_to_keras方法来开始。另外,作为第一个参数,你可能需要提供实际的模型,而不是模型路径。给予这些,但是,我不熟悉这个库。
axkjgtzd3#
“model”应该是一个(加载的)pytorch模型(而不是字符串)
字符串
ulydmbyx4#
如果你只是想将.pt模型状态转换为.h5,而不用担心Keras或ONNX的兼容性,你可以加载模型状态,然后将每个Tensor递归导出到.h5文件:
字符串
这个函数应该打印类似于:
型
现在你可以加载你的.h5文件:
型