Я новичок в 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)
Если вы планируете тренировать свою сеть с нуля, вы можете рассчитать статистику своего набора данных. Статистика набора данных рассчитывается заранее. Вы можете использовать ImageFolder
для ImageFolder
изображений для расчета статистики набора данных. Например, псевдокод -
for inputs, labels in dataloaders:
# Calculate mean and std dev
# save for later processing
Как правило, CNN предварительно обрабатываются другими более крупными наборами данных, такими как Imagenet, в основном для сокращения времени обучения. Если вы используете предварительно подготовленную сеть, вы можете использовать среднюю и стандартную dev исходных наборов данных для вашего обучения.