해결된 질문
작성
·
40
1
cifar10 데이터셋에 대하여 Normalize를 적용하는 이유가 궁금합니다.
mean과 std 리스트에 들어있는 값의 의미가 무엇인가요?
이미 ToTensor()로 0~1값의 스케일링 된 데이터를, 표준화까지 적용하여 평균0, 분산 1로 만드는데 장점이 있는건가요??
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
def get_dataloaders():
train_data = torchvision.datasets.CIFAR10(
root="../.cache",
train=True,
download=True,
transform=transforms.Compose([torchvision.transforms.ToTensor(), normalize]),
)
답변 1
0
안녕하세요!
좋은 질문 감사합니다!
mean과 std에 들어가있는 값들은 0~1 사이로 normalize (정규화)된 CIFAR 데이터셋의 각 채널별 평균과 표준편차 값들 입니다! 이미 계산되어 있는 값을 가져와서 사용한 것입니다.
저희는 0~1 사이로 CIFAR 데이터셋을 정규화한 후, 정규화된 데이터셋이 평균이 0이 되고 표준편차가 1이 되도록 standardize (표준화)하고 싶습니다. 따라서 (X - mean) / std 로 각 채널별로 표준화하는 것입니다!