我想基于这篇中等文章使用onnx将pytorch模型转换为keras:
https://medium.com/analytics vidhya/pytorch - - keras使用onnx - 71 d98258ad76
我复制了与本文相同的代码,但是当我想将onnx模型转换为keras时,我面临这个错误:
ValueError: 'onnx:: add_6_塑形/'不是一个有效的根作用域名称。根作用域名称必须匹配以下模式:^[A- za -z0-9.][A- za -z0-9_./>-]*$
有谁知道我怎么修理它吗?
取决于您要转换的模型,但是您可以尝试以下操作:
- 安装pt2keras: https://github.com/JWLee89/pt2keras
pip install -U pt2keras
- 用下面的脚本转换模型(已测试)
import tensorflow as tf
from pt2keras import Pt2Keras
from pt2keras import converter
import torch.nn.functional as F
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super().__init__()
self.hidden = nn.Linear(784, 128)
self.output = nn.Linear(128, 10)
def forward(self, x):
x = self.hidden(x)
x = F.sigmoid(x)
x = self.output(x)
return x
if __name__ == '__main__':
input_shape = (1, 784)
# Grab model
model = Model()
# Create pt2keras object
converter = Pt2Keras()
# convert model
# model can be both pytorch nn.Module or
# string path to .onnx file. E.g. 'model.onnx'
keras_model: tf.keras.Model = converter.convert(model, input_shape)
# Save the model
keras_model.save('output_model.h5')
我是这个包的作者,这主要是在我的空闲时间快速完成的,但希望这对你有用。
我在我的本地环境中测试了上面的代码,它对我有效。