PyTorch로 시작하는 딥러닝 입문
MLP모델의 전반적인 과정 및 특징
1. NN model class
- nn.Module을 상속받는다.
- nn.Linear(in_features, out_features)
입력받은 dimension 정보를 바탕으로 선형 변환을 진행하는 클래스
- init_param 함수(nn.init 활용)
pytorch는 nn.Linear에서 자동으로 initialize parameter를 진행한다.
- kaiming_normal :
input tensor를 평균이 0인 정규분포의 형태로 값을 채워준다.
- zeros
2. Set Optimizer
- 모델 클래스 인스턴스 생성
- loss 함수 선정
크로스 엔트로피
- nn.CrossEntropyLoss()
- optimizer 할당
아담
- optim.Adam(parametersm learning_rate)
2-1. simple test
세션이 없기 때문에 바로 네트워크를 만들고 실행시켜볼 수 있다는 것이 Torch의 장점(TF2도 가능하다)
무언가 Torch에서 실행시키기 위해서는 현재 Device에 저장해야한다.
ex)
M = MultiLayerPerceptronClass(name='mlp',xdim=784,hdim=256,ydim=10).to(device)
torch.tensor.detach() : Tensor를 복사하는 방법 중 하나이다.
3. Eval Func setting
-model.eval(), model.train()
Sets the module in evaluation, training mode
only affect particular modules(e.g. Dropout, BatchNormalization)