Deep learning 如何在Pytork中的3*n矩阵的三个轴上使用三个Conv1d?

Deep learning 如何在Pytork中的3*n矩阵的三个轴上使用三个Conv1d?,deep-learning,pytorch,Deep Learning,Pytorch,以下是我的CNN。它的输入是一个(3,64)矩阵,我想用三个卷积核分别处理x,y,z轴 class Char_CNN(nn.Module): def __init__(self): super(Char_CNN, self).__init__() self.convdx = nn.Conv1d(1, 12, 20) self.convdy = nn.Conv1d(1, 12, 20) self.convdz = nn.Con

以下是我的CNN。它的输入是一个(3,64)矩阵,我想用三个卷积核分别处理x,y,z轴

class Char_CNN(nn.Module):
    def __init__(self):
        super(Char_CNN, self).__init__()
        self.convdx = nn.Conv1d(1, 12, 20)
        self.convdy = nn.Conv1d(1, 12, 20)
        self.convdz = nn.Conv1d(1, 12, 20)
        self.fc1 = nn.Linear(540, 1024)
        self.fc2 = nn.Linear(1024, 30)
        self.fc3 = nn.Linear(30, 13)

    def forward(self, x):
        after_convd = [self.convdx(x[:, :, 0]), self.convdy(x[:, :, 1]), self.convdz(x[:, :, 2])]
        after_pool = [F.max_pool1d(F.relu(value), 3) for value in after_convd]

        x = torch.cat(after_pool, 1)
        x = x.view(x.size(0), -1)
        x = self.fc1(x)
        x = self.fc2(x)
        x = self.fc3(x)
        x = F.softmax(x)
        return x
但是在运行
loss=criteria(out,target)
期间,会发生运行时错误:

运行时错误:断言'cur\u target>=0&&cur\u target 我是pytorch的新手,所以我无法找出我代码的错误。
你能帮帮我吗?

卷积法没问题。问题是我的标签在1到13之间,正确的范围是0到12。 修改后,我的CNN工作成功。
但作为Pytorch和深度学习的新手,我想我的卷积模式会更清晰、更容易。欢迎指出我的错误

你的问题不清楚。您遇到的错误是因为Criteria函数预期目标标签为0到12,但您提供的标签为1到13。你能提供你正在做什么的更多细节吗?输入是什么?请解释,以便我们能够提供帮助。很抱歉,问题已经解决,我的代码正在成功运行。