Если вы тренируете новую модель с вашим собственным набором данных, с предварительно подготовленными весами, вам потребуется новое среднее значение и стандартное значение для вашего нового набора данных.
В основном вам нужно будет повторить процесскак ImageNet сделал это.Создайте сценарий, который вычисляет общее значение [mean, std]
всего набора данных.
Но не забывайте следить за распределением набора данных, так как оно определенно повлияет на производительность модели.
Затем определите преобразовательметод индивидуально для вашего поезда / вальсета.Обычно мы не нормализуем набор тестов, поскольку в реальном сценарии ваша модель будет принимать данные различного рода.Вы должны выполнить процесс нормализации при построении набора данных вместе с другими методами дополнения.
Например, рассмотрите этот пример игрушки
"transformer": {
"train": transforms.Compose([
transforms.Resize(size=299),
transforms.RandomHorizontalFlip(p=0.2),
transforms.ToTensor(),
transforms.Normalize(new_mean, new_std)
]),
"valid": transforms.Compose([
transforms.Resize(size=299),
transforms.ToTensor(),
])
}
train_ds = CustomDataset(type="train", transformer=transformer["train"])
valid_ds = CustomDataset(type="valid", transformer=transformer["valid"])
Дайте мне знать, если у вас больше путаницы