Pytorch 在TorchScript中对列表求和的推荐方法是什么
因为Torchscript中目前不支持Pytorch 在TorchScript中对列表求和的推荐方法是什么,pytorch,jit,Pytorch,Jit,因为Torchscript中目前不支持Python内置:我正在寻找推荐的方法来执行以下操作: 类模型(nn.Module): 定义初始化(自): super()。\uuuu init\uuuuu() def前进(自身,x): 返回和(x.tolist()) 模型=模型() model=torch.jit.script(model) 模型(火炬阿兰奇(10)) 最简单的方法是直接使用PyTorch的sum: class Model(nn.Module): def __init__(self
Python内置:
我正在寻找推荐的方法来执行以下操作:
类模型(nn.Module):
定义初始化(自):
super()。\uuuu init\uuuuu()
def前进(自身,x):
返回和(x.tolist())
模型=模型()
model=torch.jit.script(model)
模型(火炬阿兰奇(10))
最简单的方法是直接使用PyTorch的sum
:
class Model(nn.Module):
def __init__(self):
super().__init__()
def forward(self, x):
return torch.sum(x)
如果出于某种原因,这不是一个选项,那么您必须将类型规范与显式循环一起使用(请注意类型提示!):
谢谢我在前面的方法中有一个列表,所以我没有立即选择
torch.sum
。我最终还是这样做了,将列表转换为张量,然后使用tensor.item()
,因为我需要int
。
import typing
import torch
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super().__init__()
def forward(self, x) -> int:
x: typing.List[int] = x.tolist()
result = 0
for elem in x:
result += elem
return result