Pytorch에서 Dataset과 Dataloader에 대한 이해

2983 단어 경험 총결산
Pytorch를 사용하여 데이터를 읽을 때 다음과 같은 절차를 사용합니다: 1) Dataset 대상 만들기 2) Dataloader에 Dataset 대상을 매개 변수로 전달
상세 단계 1) Dataset 객체 만들기: 상속 Dataset의 클래스를 작성하고 덮어쓰기getitem__및len__방법, 코드는 다음과 같다.
class dataset(Dataset):
	def process(self):
		# 
		pass
	
	def __getitem__(self,index):
		pass
		
	def __len__(self):
		# 
		pass

(1) 여기서getitem__함수의 역할은 인덱스 index에 따라 데이터를 옮겨다니는 것이다(2)len__함수의 역할은 데이터 집합의 길이를 되돌려주는 것이다. (3) 생성된 데이터set 클래스에서 자신의 요구에 따라 데이터를 처리할 수 있다.독립형 데이터 처리 함수 작성 가능,getitem__함수에서 호출, 예를 들어 상기 코드 세션의process 함수;또는 데이터 처리 방법을 에 직접 쓰기getitem__함수 중.
상세 2단계) Dataset 객체를 매개 변수로 Dataloader에 전달하려면 다음과 같이 1단계에서 생성한 Dataset 객체를 매개 변수로 Dataloader에 전달합니다.
# 
dataset_object = dataset()
# dataset_object Dataloader 
dataloader = DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, 
						num_workers=0, collate_fn=default_collate,
						pin_memory=False, 
						drop_last=False)

주의해야 할 것은 Dataloader에 기본collate 가 존재한다는 것입니다.fn 함수, 자신의 요구에 따라 collate를 다시 써야 합니다fn 함수: (1) 이 함수의 역할은 데이터를batch로 정리하는 것이다. 즉batch 에 따라크기 한꺼번에 데이터 세트에서batch 꺼내기크기 데이터.예를 들어 데이터 집합에 4개의 데이터가 있다,batch사이즈의 값이 2이면 4개의 데이터에서 2개의 데이터를 꺼냅니다.(2)collate_fn 함수의 입력은list입니다.list의 모든 요소는 자신이 작성한 데이터set 클래스에서getitem__함수의 반환값.(3) Dataloader에서 droplast는 하나의batch가 부족합니다.size의 데이터가 보존되는지, 즉 4개의 데이터가 있다면batchsize의 값이 3이면batch 를 꺼냅니다크기 이후 남은 1개의 데이터가 훈련 데이터로 남아 있는지 여부입니다.

좋은 웹페이지 즐겨찾기