我收到属性错误,因为 'int' 对象没有属性 'to'
I am getting Attribute error as 'int' object has no attribute 'to'
我正在 Kaggle notebook 中编写用于图像分类的 python 代码。在训练部分,我收到一个错误
AttributeError Traceback (most recent call last)
<ipython-input-22-052723d8ce9d> in <module>
5 test_loss = 0.0
6 for images,label in enumerate(train_loader):
----> 7 images,label = images.to(cuda),label.to(cuda)
8 optimizer.zero_grad()
9
AttributeError: 'int' object has no attribute 'to'
这是下面的代码,(我只给出了2部分,如果你需要更多请告诉)
train_loader = torch.utils.data.DataLoader(train_data,batch_size = 128,num_workers =0,shuffle =True)
test_loader = torch.utils.data.DataLoader(test_data,batch_size = 64,num_workers =0,shuffle =False)
epoch = 10
for e in range(epoch):
train_loss = 0.0
test_loss = 0.0
for images,label in enumerate(train_loader):
images,label = images.to(cuda),label.to(cuda)
optimizer.zero_grad()
output = model(images)
_,predict = torch.max(output.data, 1)
loss = criterion(output,labels)
loss.backward()
optimizer.step()
train_loss += loss.item()
train_size += label.size(0)
train_success += (predict==label).sum().item()
print("train_accuracy is {.2f}".format(100*(train_success/train_size)) )
我对你工作的环境了解不多,但问题是这样的:
for images, label in enumerate (train_loader):
将 train_loader 中的任何内容放入 label
,而 images
给出一个数字。
试试看我的意思,看看哪里出了问题:
for images, label in enumerate(train_loader):
print(images)
return
并且由于 images
是一个数字 (int),因此没有 images.to()
方法与 images
关联
我正在 Kaggle notebook 中编写用于图像分类的 python 代码。在训练部分,我收到一个错误
AttributeError Traceback (most recent call last)
<ipython-input-22-052723d8ce9d> in <module>
5 test_loss = 0.0
6 for images,label in enumerate(train_loader):
----> 7 images,label = images.to(cuda),label.to(cuda)
8 optimizer.zero_grad()
9
AttributeError: 'int' object has no attribute 'to'
这是下面的代码,(我只给出了2部分,如果你需要更多请告诉)
train_loader = torch.utils.data.DataLoader(train_data,batch_size = 128,num_workers =0,shuffle =True)
test_loader = torch.utils.data.DataLoader(test_data,batch_size = 64,num_workers =0,shuffle =False)
epoch = 10
for e in range(epoch):
train_loss = 0.0
test_loss = 0.0
for images,label in enumerate(train_loader):
images,label = images.to(cuda),label.to(cuda)
optimizer.zero_grad()
output = model(images)
_,predict = torch.max(output.data, 1)
loss = criterion(output,labels)
loss.backward()
optimizer.step()
train_loss += loss.item()
train_size += label.size(0)
train_success += (predict==label).sum().item()
print("train_accuracy is {.2f}".format(100*(train_success/train_size)) )
我对你工作的环境了解不多,但问题是这样的:
for images, label in enumerate (train_loader):
将 train_loader 中的任何内容放入 label
,而 images
给出一个数字。
试试看我的意思,看看哪里出了问题:
for images, label in enumerate(train_loader):
print(images)
return
并且由于 images
是一个数字 (int),因此没有 images.to()
方法与 images