Visualizing model

I have downloaded resnet-18 pretrained model and trying to load that as I am working in remote PC…

Code: for j in range(inputs.size()[0]):
images_so_far += 1
ax = plt.subplot(num_images//2, 2, images_so_far)
ax.axis(‘off’)
ax.set_title(‘predicted: {}’.format(dset_classes[preds[j]]))
imshow(inputs.cpu().data[j])

        if images_so_far == num_images:
            return

Error:visualize_model(model_ft)

TypeError Traceback (most recent call last)
in ()
----> 1 visualize_model(model_ft)

in visualize_model(model, num_images)
17 ax = plt.subplot(num_images//2, 2, images_so_far)
18 ax.axis(‘off’)
—> 19 ax.set_title(‘predicted: {}’.format(dset_classes[preds[j]]))
20 imshow(inputs.cpu().data[j])
21

TypeError: list indices must be integers, not torch.cuda.LongTensor

Please Help!!!

Hi, since the information is limited I’m not sure, but are you sure preds[j] is int? If it’s Tensor, what you need is preds[j][0]

Actually the function is like:

def visualize_model(model, num_images=6):
images_so_far = 0
fig = plt.figure()

for i, data in enumerate(dset_loaders['val']):
    inputs, labels = data
    if use_gpu:
        inputs, labels = Variable(inputs.cuda()), Variable(labels.cuda())
    else:
        inputs, labels = Variable(inputs), Variable(labels)

    outputs = model(inputs)
    _, preds = torch.max(outputs.data, 1)
    
    #preds = (preds).data.cpu().numpy()
    
    for j in range(inputs.size()[0]):
        images_so_far += 1
        ax = plt.subplot(num_images//2, 2, images_so_far)
        ax.axis('off')
        ax.set_title('predicted: {}'.format(dset_classes[preds[j]]))
        (Variable(j).data).cpu().numpy()
        imshow(inputs.cpu().data[j])

        if images_so_far == num_images:
            return

While calling visualize_model(model_ft) at the end to see the output running in GPU it is throwing the error:


TypeError Traceback (most recent call last)
in ()
----> 1 visualize_model(model_ft)

in visualize_model(model, num_images)
19 ax = plt.subplot(num_images//2, 2, images_so_far)
20 ax.axis(‘off’)
—> 21 ax.set_title(‘predicted: {}’.format(dset_classes[preds[j]]))
22 (Variable(j).data).cpu().numpy()
23 imshow(inputs.cpu().data[j])

TypeError: list indices must be integers, not torch.cuda.LongTensor

Are you sure preds[j] is int?

I am not sure about it…

Can you use print(type(preds[j])) or something else?