Проблема с размером канала в DCGAN (Pytorch) для изображения в градациях серого

Я попытался изменить этот пример кода , введите здесь описание ссылки DCGAN для моего собственного набора данных. Код примера предназначен для изображения RGB, но мои данные - это изображение в оттенках серого. Поэтому я установил для числа каналов nc значение 1. Однако, когда я попытался запустить программу, я получил эту ошибку: RuntimeError: Given groups = 1, weight of size 64 1 4 4, expected input [128, 3, 64, 64], чтобы иметь 1 канал, но вместо этого было 3 канала. Я знаю, что это проблема с количеством каналов, но я понятия не имею, что еще мне нужно изменить, чтобы решить эту ошибку.

Любая помощь будет оценена по достоинству!


person Nalinh Thoummala    schedule 09.05.2020    source источник


Ответы (2)


Вы передаете изображения RGB с 3 каналами. Вы должны передать тензор формы [batch, 1, width, height], в то время как ваш, очевидно, [128, 3, 64, 64] (и должен быть [128, 1, 64, 64]).

Убедитесь, что вы вводите форму изображения с помощью атрибута print(image.shape).

Если вы используете torchvisionpillow под капотом), вы можете использовать torchvision.transforms.Grayscale() (см. документы). Также убедитесь, что ваши изображения действительно в оттенках серого.

person Szymon Maszke    schedule 09.05.2020

Какова фактическая форма вашего ввода? Я предполагаю, что вы загружаете изображения как стандартные RGB, которые загружают их как трехканальные изображения, даже если они действительно в оттенках серого.

person Karl    schedule 10.05.2020