PyTorch中F.cross_entropy使用报错:目标尺寸不匹配问题求解
错误原因与解决方法
错误核心原因:
torch.nn.functional.cross_entropy默认将第1维(dim=1)视为类别维度。你的模型输出是(batch_size, 14, 100),函数会错误地把14当成类别数,把100当成每个样本的任务数,因此期望目标标签的维度是(batch_size, 100),但你传入的是(batch_size, 14),维度不匹配导致报错。解决方法:调用
cross_entropy时显式指定类别维度为最后一维(dim=-1),让函数识别100是类别数、14是任务数:import torch.nn.functional as F loss = F.cross_entropy(model_output, target, dim=-1)
内容的提问来源于stack exchange,提问作者ryan chandra
相关产品推荐
相关产品推荐

