collate_fn을 사용하면…((피처1, 라벨1) (피처2, 라벨2))와 같은 배치 단위 데이터가 ((피처1, 피처2), (라벨1, 라벨2))이 된다…
피처-라벨 피처-라벨 매칭에서
피처,피처 → 라벨라벨…
이 되는데
그러면 collate를 쓰지 않고 batch_size만 해도 충분히 비슷한 결과가 나오는데 왜 굳이? 사용하는가?
GT값 : Ground Truth 값
dataset_train_MNIST = torchvision.datasets.MNIST('data/MNIST/', # 다운로드 경로 지정
train=True, # True를 지정하면 훈련 데이터로 다운로드
transform=transforms.ToTensor(), # 텐서로 변환
download=True,
)
dataset_train_MNIST
'''
dataset_train_MNIST
output
Dataset MNIST
Number of datapoints: 60000
Root location: data/MNIST/
Split: Train
StandardTransform
Transform: ToTensor()
'''
len(dataset_train_MNIST) # 60000
dataset_train_MNIST.classes
'''
['0 - zero',
'1 - one',
'2 - two',
'3 - three',
'4 - four',
'5 - five',
'6 - six',
'7 - seven',
'8 - eight',
'9 - nine']
'''
plt.imshow(image.numpy().squeeze(), cmap='gray')
plt.title("{}".format(dataset_train_MNIST.classes[label]))
plt.axis('off')
plt.show()
dataloader_train_MNIST = DataLoader(dataset=dataset_train_MNIST,
batch_size=16,
shuffle=True,
num_workers=4,
)
images, labels = next(iter(dataloader_train_MNIST))
[PyTorch] 기본 과제 2, CIFAR-10 dataset 로드하는 과정에서, Cmpose를 이용할 때 순서를 RandomVerticalFlip-ToTensor-Normalize가 아닌 RandomVerticalFlip-Normalize-ToTensor 로 하니
image, label = next(iter(dataset_train_CIFAR10))
image, label
에서 TypeError: img should be Tensor Image. Got <class 'PIL.Image.Image'> 와 같은 오류가 발생했는데, 그 이유는Normalize의 경우 Tensor Image를 input으로 하기 때문이다!
따라서 Compose할 때 순서를 잘 설정해줘야 한다.
AG_NEWS Dataset