程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入??

开发过程中遇到为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?的解决方法建议,希望对你解决为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?有所启发或帮助;

我希望使用教程 here 使用 ONNX 作为中间格式将 PyTorch 模型转换为 Tensorflow。但是,转换后,当我运行时

output =[node.name for node in model.graph.output]
input_all = [node.name for node in model.graph.input]
input_initializer =  [node.name for node in model.graph.initializer]
net_Feed_input = List(set(input_all)  - set(input_initializer))

print('inputs: ',net_Feed_input)
print('Outputs: ',output)

它说输入为零。这是模型架构

class Model(nn.ModulE):
    def __init__(self):
        super().__init__()
        self.hIDden_x1 = nn.Sequential(
            nn.Conv1d(in_chAnnels=2,out_chAnnels=8,kernel_size=7),nn.SELU(),nn.Conv1d(in_chAnnels=8,out_chAnnels=6,nn.Conv1d(in_chAnnels=6,out_chAnnels=4,kernel_size=5),)
        self.hIDden_xfc = nn.Sequential(
            nn.linear(256,20),nn.linear(20,)
        self.hIDden_x2 = nn.Sequential(
            nn.MaxPool1d(kernel_size=2),nn.Conv1d(in_chAnnels=2,nn.Conv1d(in_chAnnels=4,nn.AvgPool1d(kernel_size=2),out_chAnnels=2,kernel_size=3),)
        self.hIDden_encoded_1 = nn.Flatten()
        self.hIDden_embedding = nn.Sequential(
            nn.linear(26,16),nn.linear(16,8),nn.linear(8,4),)
        
    def forWARD(self,x,n=-1):
      x = torch.transpose(x,1,2)
      x = self.hIDden_x1(X)
      xfc = torch.reshape(x,(n,256))
      xfc = self.hIDden_xfc(xfC)
      x = torch.reshape(x,2,128))
      x = self.hIDden_x2(X)
      encoded = self.hIDden_encoded_1(X)
      encoded = torch.cat((encoded,xfC),1)
      embedding = self.hIDden_embedding(encoded)

      unscaled_param = embedding*torch.tensor(params_scaler.var_[0:4]**0.5).cuda() + torch.tensor(params_scaler.mean_[0:4]).cuda()
      return unscaled_param

我在做 torch.onnx.export(Trained_model,dummy_input,"output/Trained_model.onnx")

时传入这个随机输入
dummy_input = Variable(torch.randn(20,80,2))
dummy_input = dummy_input.type(torch.cuda.DoubleTensor)

在转换 ONNX 模型 TensorFlow 后,它还说输入为零。有谁知道我可能做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?全部内容,希望文章能够帮你解决为什么我的 ONNX 模型在从 PyTorch 转换后有 0 个输入?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。