【发布时间】:2020-03-21 10:27:11
【问题描述】:
我的 convLSTM 模型返回一个隐藏状态列表(总共 17 个,大小为 (1,3,128,128)),我的目标是一个包含 17 个图像的列表(所有张量大小:(3,128,128) 调用损失函数时,出现以下错误:
文件“/Users/xyz/opt/anaconda3/envs/matrix/lib/python3.7/site->packages/torch/nn/modules/loss.py”,第 498 行,向前 return F.binary_cross_entropy(输入,目标,权重=self.weight,>reduction=self.reduction) 文件“/Users/xyz/opt/anaconda3/envs/matrix/lib/python3.7/site->packages/torch/nn/functional.py”,第 2052 行,位于 binary_cross_entropy 如果 target.size() != input.size(): AttributeError: 'list' 对象没有属性 'size'
部分训练循环:
hc = model.init_hidden(batch_size=1)
for batch_idx, (data, target) in enumerate(train_loader):
optimizer.zero_grad()
# Set target, images 2 to 18
target = data[1:]
if gpu:
data = data.cuda()
target = target.cuda()
hc.cuda()
# Get outputs of LSTM
output = model(data, hc)
# Calculate loss
loss = criterion(output, target)
loss.backward()
optimizer.step()
我原以为会出现尺寸不匹配错误,但结果却出现了这个错误。我该如何解决这个问题?
【问题讨论】:
标签: pytorch loss-function