Вам нужно получить размеры изображений с помощью наборов данных torchvision?

Если вы все еще читаете это на носителе, я переместил свой блог на http://yvanscher.com/blog.html

Если вы попытаетесь загрузить изображения с помощью torchvision, вы можете получить такую ​​ошибку:

Может выдать такую ​​ошибку внизу трассировки стека:

RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 256 and 519 in dimension 2 at /opt/conda/conda-bld/pytorch_1518243271935/work/torch/lib/TH/generic/THTensorMath.c:2897

В основном потому, что каждый пакет представляет собой один тензор (матрицу), а pytorch говорит, что все изображения в пакете должны быть одного размера. Это имеет смысл. Если у вас есть 2D-матрица, в строке 1 не может быть 5 столбцов, если в строке 2 7 столбцов. Каждая строка в матрице должна иметь одинаковое количество столбцов. Если вы действительно хотите получить размеры с помощью pytorch, вы можете просто установить batch_size равным 1. Таким образом, каждое изображение будет собственным тензором, и вы сможете записывать / сохранять размеры. Вот так:

Я считаю это полезным, потому что загрузчик изображений pytorch, кажется, загружает вещи в несколько ином порядке, чем если бы я просто читал файлы с диска (не говоря уже о том, что это полезно, если вы перетасовываете через фиксированное случайное семя), и это помогает мне хранить мои данные в заказ, когда я хочу проверить свои прогнозы. Будет выведено что-то вроде этого:

torch.Size([1, 3, 256, 256])
torch.Size([1, 3, 519, 253])
torch.Size([1, 3, 256, 256])
torch.Size([1, 3, 256, 256])
torch.Size([1, 3, 256, 256])
torch.Size([1, 3, 512, 680])

Как вы можете видеть изображения разных размеров, используя набор данных pytorch!

Вот и все, что нужно для этого небольшого совета. Если вам нравится машинное обучение, у меня есть информационный бюллетень, посвященный машинному обучению и видеоиграм, под названием Generation Machine. Обязательно зацените!