PyTorch 导出onnx模型没有输入节点

PyTorch 导出onnx模型没有输入节点

Tensor.data使得torch.Tensorrequires_grad=False,因此在torch.onnx.export导出模型时,该Tensor不被追踪,当作了常量参数,最终导出的模型没有输入节点。

torch.onnx转模型时,通过netron查看网络结构,发现没有输入结果,输入被当作常量参数放在原输入结点的下一个节点中。

networkX

torch.onnx.export()

 Exports a model into ONNX format. 
 If ``model`` is not a 
 :class:`torch.jit.ScriptModule` nor a :class:`torch.jit.ScriptFunction`, 
 this runs ``model`` once in order to convert it to
  a TorchScript graph to be exported
   (the equivalent of :func:`torch.jit.trace`). 
 Thus this has the same limited support for dynamic control flow as 
 :func:`torch.jit.trace`.

翻译

将模型导出为 ONNX 格式。
 如果 ``model`` 不是 :class:`torch.jit.ScriptModule` 也不是 
 :class:`torch.jit.ScriptFunction`,
 这将运行 ``model`` 一次,以便将其转换为 TorchScript 图 被导出(相当于:func:`torch.jit.trace`)。 
 因此,它对动态控制流的支持与 torch.jit.trace 相同。

如果对执行.data后的input进行.requires_grad_(),设置requires_grad=True,报错如下。

Cannot insert a Tensor that requires grad as a constant. Consider making it a parameter or input, or detaching the gradient

data

注释代码中input.data操作。

INPUTS
network

torch==1.11.0
onnx==2.0.1
opset_version=11

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值