Albumentation에서 ColorJitter를 적용시키려 다음과 같이 세팅한 후 실행을 하였더니 오류가 발생하였다.
transform = A.Compose([
# A.HorizontalFlip(),
# A.VerticalFlip(),
# A.Rotate(limit=(-180, 180), p=0.5),
A.ColorJitter(brightness=0,contrast=(1,5),saturation=0,hue=0)
], is_check_shapes=False
)
File "/opt/conda/lib/python3.10/site-packages/albumentations/augmentations/functional.py", line 1223, in adjust_contrast_torchvision
MAX_VALUES_BY_DTYPE[img.dtype],
KeyError: dtype('int16')
ColorJitter 연산에서 지원되는 데이터 타입이 int16, float64와 같은 자료형이 적용되지 않기 떄문이다.
input_img = input_img.astype(np.float32)
단순히 입력이미지를 float 타입으로 바꾸는 것으로 해결이 가능하다. 아니면 uint8이어도 괜찮다. np.float32로 변환하게 되면 기본 정수값뒤에 .0이 붙을 뿐, 값이 손실되는 상황은 생기지 않으므로 괜찮다.
즉, 보통 정규화 전 augmentation을 수행하는데 이 단계에서도 float32로 입력 이미지 타입을 바꾸는 것은 큰 문제가 되는 것처럼 보이지 않는다.
'Python 관련 > Pytorch' 카테고리의 다른 글
[Pytorch] torchview를 사용한 모델 plot 시각화 (ubuntu) (0) | 2024.05.29 |
---|---|
RuntimeError: CUDA error: device-side assert triggered (0) | 2024.04.05 |
[Pytorch] 모델 저장 오류 (0) | 2024.03.07 |
[Pytorch] Generator (0) | 2024.02.27 |
[Pytorch] Randomness 제어 (0) | 2024.02.27 |