由于ONNX支持有限的模型,因此我尝试通过直接分配参数来进行此转换,但是获得的tensorflow模型未能显示所需的精度。详细信息如下:
但是,获得的张量流模型的精度仅为20%左右。因此,我的问题是可以通过这种方法转换pytorch模型吗?如果是,导致不良结果的可能原因是什么?如果没有,请解释原因。
PS:假设分配过程正确。
答案 0 :(得分:2)
正如jodag的评论所提到的,Tensorflow和PyTorch中的运算符表示之间存在许多差异,这可能会导致工作流中的差异。
我们建议使用以下方法:
import torch.onnx
# Argument: model is the PyTorch model
# Argument: dummy_input is a torch tensor
torch.onnx.export(model, dummy_input, "LeNet_model.onnx")
import onnx
from onnx_tf.backend import prepare
onnx_model = onnx.load("LeNet_model.onnx") # load onnx model
tf_rep = prepare(onnx_model) # prepare tf representation
tf_rep.export_graph("LeNet_model.pb") # export the model