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

1

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

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

train_transforms = transforms.Compose([transforms.Resize(size=224),
                                       transforms.ToTensor(),  transforms.Normalize((?), (?))
                                       ])
train_dataset = datasets.ImageFolder(root='roota/',
                                     transform=train_transforms)
Теги:
conv-neural-network
pytorch
dataset

1 ответ

2
Лучший ответ

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

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

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

  • 1
    Спасибо. Это имеет большой смысл. Я могу рассчитать среднее и стандартное из фактического набора чисел. Не уверен, как это делается с изображениями или тензорами. Возможно, у вас есть код или ссылка (просто в качестве примера), где вы на самом деле это сделали?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню