断言 `cur_target >= 0 && cur_target < n_classes' 失败

Posted

技术标签:

【中文标题】断言 `cur_target >= 0 && cur_target < n_classes\' 失败【英文标题】:Assertion `cur_target >= 0 && cur_target < n_classes' failed断言 `cur_target >= 0 && cur_target < n_classes' 失败 【发布时间】:2018-06-02 01:25:40 【问题描述】:

我是神经网络的新手,正在尝试在 Pytorch 中训练一个简单的神经网络,并将标记数据作为分类器。数据包含 6 个特征和 3 个标签。不幸的是,当我运行代码时,错误代码:

断言 `cur_target >= 0 && cur_target

我已阅读有关此主题的所有可能主题,但尚未找到可以为我解决此问题的解决方案。

我的标签是 0、1 和 2,我的特征数据是在 ~-12 到 ~2000 范围内的数字。

有什么想法吗?

#hyperparameters
hl = 10
lr = 0.01
num_epoch = 500

#build model
class Net(nn.Module):

    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(6, hl)
        self.fc2 = nn.Linear(hl, 3)

    def forward(self, x):
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x
net = Net()

#choose optimizer and loss function
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=lr)

#train
for epoch in range(num_epoch):
    X = Variable(torch.Tensor(xtrain).float())
    Y = Variable(torch.Tensor(ytrain).long())

    #feedforward - backprop
    optimizer.zero_grad()
    out = net(X)
    loss = criterion(out, Y)
    loss.backward()
    optimizer.step()

    if (epoch) % 50 == 0:
        print ('Epoch [%d/%d] Loss: %.4f' 
                   %(epoch+1, num_epoch, loss.data[0]))

【问题讨论】:

跟随错误。验证您的标签是否正确。 xtrainytrain 是什么?它们的形状如何? 【参考方案1】:

适合我

xtrain = [[ 1.0721,  0.7327, -0.3655,  1.0686, -0.5575,  1.0052],
          [ 0.5194, -0.0946,  0.0181,  0.6665,  0.0231,  0.3278],
          [-0.2119, -0.5824, -0.8057,  0.5669, -1.3236, -0.1913]]
ytrain = [0, 1, 2]

如果我设置ytrain = [0, 1, 3],我会得到你的错误。我会说检查您的标签是否确实只包含 0、1 和 2。 也可能是您的数据形状与图层的形状不匹配(另请参阅https://discuss.pytorch.org/t/solved-assertion-cur-target-0-cur-target-n-classes-failed/8034/2)。

【讨论】:

以上是关于断言 `cur_target >= 0 && cur_target < n_classes' 失败的主要内容,如果未能解决你的问题,请参考以下文章

python 断言

assert断言

Assert断言

OpenCV 断言失败:(-215:断言失败)npoints >= 0 &&(深度 == CV_32F || 深度 == CV_32S)

Jmeter4.0----响应断言

Python3基础 assert 断言 确保程序的正确运行条件