Предварительная обработка данных для пользовательского набора данных в pytorch (transform.Normalize) - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в Pytorch и CNN.Я немного растерялся из-за предварительной обработки данных.Не уверен, что делать с преобразованием. Нормализация набора данных (по сути, как вы вычисляете среднее значение и стандартное отклонение для своего пользовательского набора данных?)

Я загружаю свои данные с помощью ImageFolder.Изображения имеют разные размеры.

train_transforms = transforms.Compose([transforms.Resize(size=224),
                                       transforms.ToTensor(),  transforms.Normalize((?), (?))
                                       ])
train_dataset = datasets.ImageFolder(root='roota/',
                                     transform=train_transforms)

1 Ответ

0 голосов
/ 25 сентября 2018

Если вы планируете обучать свою сеть с нуля, вы можете рассчитать статистику вашего набора данных.Статистика набора данных рассчитывается заранее.Вы можете использовать ImageFolder для циклического перебора изображений для расчета статистики набора данных.Например, псевдокод -

for inputs, labels in dataloaders:
    # Calculate mean and std dev 
    # save for later processing

Как правило, CNN проходят предварительную подготовку с другими более крупными наборами данных, такими как Imagenet, главным образом для сокращения времени обучения.Если вы используете предварительно обученную сеть, вы можете использовать среднее значение и стандартное отклонение исходного набора данных для обучения.

...