Как создать и отобразить сетку изображений в PyTorch с помощью plt.imshow и torchvision.utils.make_grid?

([\s\S]*)<FooBar>

Точка соответствует всем, кроме строк новой строки (\r\n). Поэтому используйте \ s \ S, который будет соответствовать всем символам.

0
задан kmario23 13 July 2018 в 19:19
поделиться

2 ответа

В вашем коде есть небольшая ошибка. Например, приведенный ниже код работает нормально:

In [107]: import torchvision

# sample input
In [108]: batch_tensor = torch.randn(*(10, 3, 256, 256))

# make grid (2 rows and 5 columns)
In [109]: grid_img = torchvision.utils.make_grid(batch_tensor, nrow=5)

# check shape
In [110]: grid_img.shape
Out[110]: torch.Size([3, 518, 1292])

# reshape and plot
In [111]: plt.imshow(grid_img.permute(1, 2, 0))
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
Out[111]: <matplotlib.image.AxesImage at 0x7f62081ef080>

, который показывает выход как:

0
ответ дан kmario23 17 August 2018 в 12:25
поделиться
  • 1
    Спасибо, kmario23. Моя ошибка не в том, чтобы представить сетку как изображение, которое будет отображаться, а это значит, что сетка должна быть переделана :-) – user41626 14 July 2018 в 13:45

Вам нужно сначала преобразовать в numpy

import numpy as np

def show(img):
    npimg = img.numpy()
    plt.imshow(np.transpose(npimg, (1,2,0)), interpolation='nearest')

w = torch.randn(10,3,640,640)
grid = torchvision.utils.make_grid(w, nrow=10, padding=100)
show(grid)
0
ответ дан iacolippo 17 August 2018 в 12:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: