简体   繁体   English

Pytorch - nn.CrossEntropyLoss

[英]Pytorch - nn.CrossEntropyLoss

I want to apply nn.CrossEntropyLoss我想申请 nn.CrossEntropyLoss

output = model(data)
output.shape -> 1,30,7 (batch, frame, class)
label.shape -> 1,30 (batch, frame)

In this case,在这种情况下,

label = label.squeeze(0)
output = output.squeeze(0)
criterion = nn.CrossEntropyLoss()
loss = criterion(outputs, targets)

can I solve this?我能解决这个问题吗?

But if the batch size is 2但如果批量大小为 2

output.shape is 2,30,7 and label.shape is 2, 30 output.shape 是 2,30,7 和 label.shape 是 2, 30

How to apply loss = criterion(outputs, targets)如何应用loss = criterion(outputs, targets)

The loss function nn.CrossEntropyLoss can be applied to multi-dim predictions:损失 function nn.CrossEntropyLoss可以应用于多维预测:
在此处输入图像描述

All you need is to make sure your C dimension (7 in your case) is the second:您所需要的只是确保您的C维度(在您的情况下为 7)是第二个:

output = output.transpose(1, 2)  # B,30,7 -> B,7,30
loss = criterion(outputs, targets)

You do not need to change targets at all.您根本不需要更改targets

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 keras 中是否有等效的函数 pytorch 的损失函数 nn.crossEntropyLoss()? - Is there an equivalent function pytorch's loss fuction nn.crossEntropyLoss() in keras? PyTorch nn.CrossEntropyLoss 运行时维度超出范围错误 - PyTorch nn.CrossEntropyLoss runtime dimension out of range error PyTorch nn.CrossEntropyLoss IndexError: 目标 2 越界 - PyTorch nn.CrossEntropyLoss IndexError: Target 2 is out of bounds Pytorch nn.CrossEntropyLoss 给出,ValueError: 预期目标大小 (x, y),得到 3d 张量的 torch.Size([x, z]) - Pytorch nn.CrossEntropyLoss giving, ValueError: Expected target size (x, y), got torch.Size([x, z]) for 3d tensor nn.CrossEntropyLoss()函数导致割炬.FloatTensor没有'requires_gradient'属性错误 - nn.CrossEntropyLoss() function results in torch.FloatTensor has no 'requires_gradient' attribute error RuntimeError:预期标量类型 Float 但发现 Double 错误 torch.nn.CrossEntropyLoss Pytorch - RuntimeError: expected scalar type Float but found Double error torch.nn.CrossEntropyLoss Pytorch Pytorch CrossEntropyLoss Tensorflow 等价 - Pytorch CrossEntropyLoss Tensorflow Equivalent PyTorch CrossEntropyLoss 维度超出范围 - PyTorch CrossEntropyLoss DImension Out of Range Pytorch:如何访问 CrossEntropyLoss() 梯度? - Pytorch: How to access CrossEntropyLoss() gradient? 将 Keras NN 转换为 Pytorch NN - Convert a Keras NN to a Pytorch NN
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM