pytorch权重的元素乘法

时间:2018-12-15 20:58:47

标签: pytorch elementwise-operations one-hot-encoding

我正在尝试通过权重逐元素相乘来构建一个简单的“神经网络”。 就这种情况而言,我有一个具有5个特征的数据,只有一个特征为“ 1”,其余所有特征为“ 0”(一个热编码),我试图用softmax和交叉熵损失来预测正确的类。 这是我的代码(例如,我有26个功能和(类):

class Net(nn.Module):
    def __init__(self,n):
        super(Net, self).__init__()
        self.weights = nn.Parameter(torch.Tensor(n))

    def forward(self, x):
        return F.softmax(x * self.weights)

net = Net(n=26)

现在,我尝试给出形状为(1,1,26)且形状为(1,26)的张量数据的非量化张量数据(例如批大小为1)。 当我使用loss = criterion(nn_outputs, labels)插入损失函数并收到以下错误时:

RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes' failed.  at c:\a\w\1\s\tmp_conda_3.7_110509\conda\conda-bld\pytorch_1544094576194\work\aten\src\thnn\generic/SpatialClassNLLCriterion.c:110

也许有一种更简单的方法来构建和训练没有错误的简单神经网络?

0 个答案:

没有答案