Pytorch 在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

因为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):
        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