model.train()
for imgs, targets, image_ids in train_loader:
imgs = list(imgs.to(device) for img in imgs)
targets = [{k: v.to(device) for k, v in t.items()} for t in targets]
loss_dict = model(imgs, targets)
losses = sum(loss for loss in loss_dict.values())
loss_value = losses.item()
optimizer.zero_grad()
losses.backward()
optimizer.step()
for epoch in range(num_epoch):
print('Epoch {}/{}'.format(epoch, num_epoch))
print('-' * 10)
AttributeError Traceback (most recent call last)
/var/folders/z4/_7p6fjpd2hq3n_l3dhnj0h4c0000gn/T/ipykernel_2502/1335634306.py in
4
5 imgs = list(imgs.to(device) for img in imgs)
----> 6 targets = [{k: v.to(device) for k, v in t.items()} for t in targets]
7
8 loss_dict = model(imgs, targets)
/var/folders/z4/_7p6fjpd2hq3n_l3dhnj0h4c0000gn/T/ipykernel_2502/1335634306.py in (.0)
4
5 imgs = list(imgs.to(device) for img in imgs)
----> 6 targets = [{k: v.to(device) for k, v in t.items()} for t in targets]
7
8 loss_dict = model(imgs, targets)
AttributeError: ‘str’ object has no attribute ‘items’
What type is targets? If it’s a dict, then with for t in targets, you are iterating over the keys of the dict, not the values, which is why t is a str.