为 torch::jit::script::Module 转发方法提供两个输入

Give two inputs to torch::jit::script::Module forward method

我正在尝试使用 pytorch 在 python 中构建和训练网络。我的转发方法需要两个输入,如下所示:

def forward(self, x1, x2):

我在 python 中训练了这个模型并使用 torch.jit.script 保存。 然后我使用 torch::jit::load 在 C++ 中加载这个模型。 我现在如何将输入传递给 C++ 中的模型?

如果我尝试将两个单独的张量传递给正向方法,如下所示

    std::vector<torch::jit::IValue> inputs1{tensor1};
    std::vector<torch::jit::IValue> inputs2{tensor2};
    at::Tensor output = module.forward(inputs1,inputs2).toTensor();

然后我收到一条错误消息,指出方法 forward 需要 1 个参数,但提供了 2 个参数。

我也不能连接两个张量,因为所有轴上的形状都不同。

问题是连接两个张量并将连接后的张量作为模型的输入。然后在 forward 方法中,我们可以使用连接的张量创建两个单独的张量,并将它们分别用于输出计算。

为了串联工作,我在张量上附加了 0,这样除了要进行串联的轴外,它们在所有轴上的大小都相同。