python - AttributeError:“int”对象没有属性“view”(1)
问题描述
我的代码在下面,我的问题在input_gray = input_gray.view(batch_size,1,64,32)
. 由于我使用了 enumerate,我猜我遇到了问题,但不知道如何解决它,我需要你的帮助,谢谢。
for epoch in range(epochs):
# Train for one epoch, then validate
train(train_loader, model, criterion, optimizer, epoch)
correct=0
total=0
with torch.no_grad():
losses = validate(val_loader, model, criterion, save_images, epoch)
for data in enumerate(train_loader):
input_gray, labels = data
input_gray = input_gray.view(batch_size,1,64,32)
input_gray = input_gray.float()
if use_gpu:
input_gray, labels = input_gray.to.cuda(), labels.to.cuda()
output_ab = model(input_gray)
_, predicted = torch.max(output_ab.data,1)
total+=labels.size()
correct+=(predicted==labels).sum().item()
print("Accuracy train %d %%"%(100*correct/total))
train_acc.append(100*correct/total)
# Save checkpoint and replace old best model if current model is better
if losses < best_losses:
best_losses = losses
torch.save(model.state_dict(), 'checkpoints/model-epoch-{}-losses-{:.3f}.pth'.format(epoch+1,losses))
解决方案
如果你枚举一个列表,你会得到每个项目及其索引作为元组返回(index,item)
。
class something:
def __init__(self,prop1,prop2):
self.prop1=prop1
self.prop2=prop2
l = [something(1,"a"),something(2,"b")]
for k in enumerate(l):
index, data = k # so k is a tuple of (index,item) - you can deref it
print(index)
# you can access the items properties like so:
print(data.prop1, data.prop2)
输出:
0
1 a
1
2 b
您的代码可能需要:
for data in enumerate(train_loader):
index, (input_gray, labels) = data
推荐阅读
- jenkins - 访问 Jenkins 中的端口
- c# - 我无法从 C# 获取 PInvoke 到 C++ DLL 的输入参数以用作 IntPtr 的输出
- c++ - 如何从 xcode 获取 cpp 项目或类的 .s 文件?
- c# - 使用会话 ID 将消息添加到 IAsyncCollector 主题输出
- c# - asp.net mvc为什么刷新页面后ajax响应
- python - 将 Python 中的传入 csv 文件附加到主数据框
- javascript - 如何使用 jQuery 在我的表 TD 中创建一个 AUTO-INCREMENT ID?
- c++ - 职业杯上的编码挑战,找到最小的和分区
- css - CSS:如何更改孩子的背景以响应父母的悬停事件?
- ios - 线程 1:UICollectionView 中的 EXC_BAD_ACCESS (code=EXC_I386_GPFLT)?