Untitled

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()

Untitled

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