run googlenet 'tuple' object has no attribute 'data'

Viewed 11

I'm trying about googlenet,but after first epoch ,I meet this error,but don't know where is wrong

transform = transforms.Compose([
transforms.Resize([224,224]),
transforms.ToTensor (),
transforms.Normalize((0.4915, 0.4823, 0.4468,), (1.0, 1.0, 1.0)),])
def transform_label(x):
    y=torch.tensor([x]).float()
    return y
ds_train = datasets.ImageFolder("./data/train/",
            transform = transform,target_transform = transform_label)
ds_val = datasets.ImageFolder("./data/test/",
            transform = transform,target_transform = transform_label)
print(ds_train.class_to_idx)
train_loader = DataLoader(ds_train,batch_size = 4,shuffle = True)
test_loader = DataLoader(ds_val,batch_size = 4,shuffle = False)
for features,labels in train_loader:
    print(features.shape,labels.shape)
    break

maybe its sth wrong with my dataset,when I use CIFAR10 it can run without this porblem but when I use own dataset ,its error.

model = GoogLeNet().cuda()
criterion = torch.nn.MSELoss().cuda()
optimizer = optim.Adam(model.parameters(),lr=0.01)



def test(epoch):
    correct = 0
    total = 0
    with torch.no_grad():
        for data in test_loader:
            x, y = data
            x, y = x.cuda(), y.cuda()
            pre_y = model(x)
            j, pre_y = torch.max(pre_y.data, dim=1)

            total += y.size(0) 

            correct += (pre_y == y).sum().item()       
    return correct 

enter image description here

0 Answers
Related