Минирсику писику
Гуру
(2893)
3 месяца назад
Чтобы достичь максимальной скорости преобразований, необходимо расположить классы в следующем порядке:
1. `v2.ToImage()`
2. `v2.RandomResizedCrop(size=(224, 224), antialias=True)`
3. `v2.ToDtype(torch.float32, scale=True)`
4. `v2.Normalize(mean=(...), std=(...))`
Объяснение:
* `ToImage()` преобразует входные данные в изображение, которое необходимо для последующих преобразований.
* `RandomResizedCrop()` изменяет размер и обрезает изображение, что необходимо сделать до нормализации и изменения типа данных.
* `ToDtype(torch.float32, scale=True)` меняет тип данных изображения на `float32` и масштабирует значения пикселей, что необходимо для нормализации.
* `Normalize()` нормализует значения пикселей изображения, используя среднее значение и стандартное отклонение.
`ToDtype(torch.uint8, scale=True)` не должен быть использован после `ToDtype(torch.float32, scale=True)`, так как это приведет к потере точности и замедлению процесса преобразования.
Используя этот порядок, вы можете достичь максимальной скорости преобразований и получить корректные результаты.
Милана КимУченик (82)
3 месяца назад
А если в задание надо оставить ToDtype(torch.uint8, scale=True)`, то куда его?
v2.ToImage()
v2.RandomResizedCrop(size=(224, 224), antialias=True)
v2.ToDtype(torch.float32, scale=True)
v2.Normalize(mean=(...), std=(...))
v2.ToDtype(torch.uint8, scale=True)