PyTorch 는 Cifar 데이터 세트 를 읽 고 그림 의 인 스 턴 스 설명 을 표시 합 니 다.

2933 단어 PyTorchCifar그림.
우선 필요 한 몇 가지 종류 가 있 는 패 키 지 를 알 아 보 겠 습 니 다.

from torchvision import transforms, datasets as ds
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt
import numpy as np

#transform = transforms.Compose             ,         。
#DataLoader        PIL.Image
#           ,    PIL.Image   torch.FloatTensor,     pytorch  
transform = transforms.Compose(
 [
 transforms.ToTensor()
 ]
)
Step 1,torch.utils.data.dataset 인 스 턴 스 를 받 습 니 다.
torch.utils.data.dataset 는 추상 적 인 클래스 이 고 CIFAR 100 은 인 스 턴 스 화 서브 클래스 입 니 다.
train=True,훈련 집 읽 기;train=False,테스트 집합 읽 기
download=False,다운로드 하지 않 습 니 다.트 루 라면 루트 아래 에 이 데이터 세트 가 있 는 지 확인 하고 없 으 면 먼저 다운로드 합 니 다.

train_set = ds.CIFAR100(root='.', train=True, transform=transform, target_transform=None, download=True)
Step 2,Dataset 를 torch.utils.data.dataLoader 로 밀봉 합 니 다.

data_loader = DataLoader(dataset=train_set,
  batch_size=1,
  shuffle=False,
  num_workers=2)


# #   torch.utils.data.DataLoaderIter
# #   DataLoaderIter   DataLoader        ,     
# data_iter = iter(data_loader)
# images, labels = next(data_iter)
step 3,DataLoader 에서 데 이 터 를 읽 고 그림 을 표시 합 니 다.
주의:
1)for...in...데 이 터 를 반복 해서 읽 을 때 DataLoader 의 를 자동 으로 호출 합 니 다.next__()함수.
그리고 Tensor 인 스 턴 스 만 교체 할 수 있 기 때문에 이전의 transforms 는 마지막 으로 transforms.Totensor()를 추가 해 야 합 니 다.
2)그림 을 표시 하 는 방법 은 두 가지 가 있 습 니 다.Image.show()와 plt.imshow(ndarray)입 니 다.
Image.show():
transforms.Topilimage()를 통 해 Float Tensor 를 Image 로 변환 합 니 다.
plt.imshow(ndarray):
Float Tensor.numpy()를 통 해 ndarray 로 전환 하고 plt.imshow()를 호출 합 니 다.

to_pil_image = transforms.ToPILImage()
cnt = 0
for image,label in data_loader:
 if cnt>=3: #    3   
 break
 print(label) #   label

 #   1:Image.show()
 # transforms.ToPILImage()    
 # npimg = np.transpose(pic.numpy(), (1, 2, 0))
 #   pic   3-D Tensor,    image[0]  batch   
 img = to_pil_image(image[0])
 img.show()

 #   2:plt.imshow(ndarray)
 img = image[0] # plt.imshow()    3-D Tensor,     image[0]  batch   
 img = img.numpy() # FloatTensor  ndarray
 img = np.transpose(img, (1,2,0)) #  channel       

 #     
 plt.imshow(img)
 plt.show()

 cnt += 1
np.transpose()의 용법 을 따로 보충 합 니 다.
첫 번 째 매개 변 수 는 transpose 그림 입 니 다.
두 번 째 는 shape.예 를 들 어 하나의 ndarray 는(channel,height,width)이 고 두 번 째 인자(height,width,channel)를 주면 0 차원 channel 전 체 를 마지막 으로 옮 깁 니 다.
이 PyTorch 는 Cifar 데이터 세트 를 읽 고 그림 을 보 여 주 는 인 스 턴 스 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기