pytorch loss = criterion(outputs, y) ,y有多个值

pytorch loss = criterion(outputs, y) ,y有多个值怎么办?
就是outputs输出1个值,y有几个值,只要outputs等于y中1个值就行,loss = criterion(outputs, y)怎么写?

部分代码如下:

for epoch in range(num_epochs):
    train_loss = []
    #开始遍历加载器中的数据
    for batch, data in enumerate(train_loader):
        #batch 为数字 表示已经进行了第几个batch
        #data 为一个二元组,分别存储了一条数据记录的输入和标签
        #每个数据的第一个维度都是 batch_size = 30 的数组

        lstm.train()   #标志LSTM处于训练态,Dropout 开始起作用
        init_hidden = lstm.initHidden(len(data[0]))   #初始化LSTM的隐含单元变量
        optimizer.zero_grad()
        x,y = Variable(data[0]), Variable(data[1])  #从数据中提炼出输入和输出对
        if use_cuda:
           x = x.cuda()
           y = y.cuda()
        outputs = lstm(x, init_hidden)   #输入LSTM,产生输出outputs
        loss = criterion(outputs, y)    #带入损失函数并产生loss
        loss.backward()  #反向传播
        optimizer.step()   #更新梯度
        if use_cuda:
            loss = loss.cpu()
        train_loss.append(loss.data.numpy())    #记录loss

大神们,这个怎么解决?

大神们,这个怎么解决?

无解吗?