[산학연계 SW프로젝트] 코드 리뷰
용어
netG: refinement generator
netP: rough generator
netD: discriminator
netF: feature discriminator
Pytorch 이해
forward() 함수: model이 학습데이터를 입력받아서 forward 연산을 진행시키는 함수. model이란 이름의 객체를 생성 후, model(입력 데이터)와 같은 형식으로 객체를 호출하면 자동으로 forward 연산이 수행됨.
torch.nn: 신경망을 구축하기 위한 다양한 데이터구조, 레이어가 정의
torch.optim: SGD 등의 파라미터 최적화 알고리즘
torch.utils.data: gradient descent 계열의 반복 연산을 할 때 사용하는 미니배치용 유틸리티 함수 포함
Variable: Pytorch Tensor와 동일한 API 제공. Pytorch autograd는 자동으로 변화도를 계산할 수 있음. 인자인 requires_grad = False이면 변화도를 계산할 필요가 없고 True이면 계산할 필요가 있다.
detach(): 기존 tensor에서 gradient 전파가 안되는 텐서 생성. clone()과 더불어 기존 tensor를 복사하는 방법
torch.zeros_like(): 입력 텐서와 크기를 동일하게 하면서 값을 0으로 채운 텐서를 생성
torch.numel(): 입력 텐서의 원소의 개수를 반환
torch.narrow(input, dim. start, length): 입력 텐서의 축소 버전인 새로운 텐서를 반환
torch.squeeze(): 차원이 1인 차원을 제거
unfold(): tensor의 dimension size들을 조절하여 원하는 텐서를 얻을 수 있음
torch.index_select(): 텐서 중에 특정 값만 조회
torch.split(): 하나의 텐서를 분리하기
torch.cat(): 텐서들을 결합하기
view: 텐서의 원소의 개수는 유지하면서 크기를 변경
permute: 텐서의 축을 변경
np.extend(): 리스트에서는 append를 사용하면 리스트 자체를 원소로 넣기 때문에 ‘[ ]’ shape까지 같이 원소로 추가된다. 따라서 extend를 사용한다.
np.tile(): 어레이를 지정한 함수 횟수만큼 반복
torch.expand(*sizes): 특정 텐서의 sizes 차원의 데이터를 반복하여 생성. 단, 개수가 1인 차원에만 적용 가능.
머신러닝 이해
batch size: 한 번의 batch 마다 주는 데이터 샘플의 size. 여기서 batch는 나눠진 데이터셋을 뜻함.
파이썬 이해
functools.partial(): 기존의 함수와 구현은 동일하고 파라미터만 미리 정해준 또 다른 함수를 생성
댓글남기기