일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- leetcode
- leetcode125
- Hadoop
- 데이터레이크와 데이터웨어하우스
- leetcode 344
- leetcode 15
- MapReduce 실습
- 블로그 이전했어요
- 스파크 완벽 가이드
- 머신러닝
- leetcode 937
- webcrawler
- wargame.kr
- leetcode 121
- leetcode 49
- 올바른 변수명 짓기
- Hortonworks Sandbox
- ctf-d
- Python
- leetcode 819
- 배열
- 컴퓨터구조
- airflow docker
- leetcode 5
- 빅데이터를 지탱하는 기술
- 문자열 조작
- leetcode 234
- leetcode 561
- leetcode 238
- docker로 airflow 설치하기
- Today
- Total
HyeM
[PyTorch] 데이터 불러오기 & Layer 이해하기 본문
PyTorch는 tensorflow와 비슷한 라이브러리로, 데이터 불러와서 모델학습을 진행할 수 있게 해주는 라이브러리이다.
저번 글까지는 tensorflow로 진행했는데, 이번엔 PyTorch로 해보며 텐서플로우와 파이토치를 비교해보자.
01. PyTorch 데이터 불러오기
▶Data Loader 부르기
1. 먼저 라이브러리 import 해준다.
2. 모델 파라미터 설정해준다.
3. 파이토치는 Data Loader를 불러 model에 넣는다.
그래서 아래의 loader만 기억하면 된다.
4. 불러온 데이터를 확인해보자.
PyTorch는 TensorFlow와 다르게 [Batch Size, Channel, Height, Width] 임을 명시해야 함.
5. 데이터를 시각화를 위한 사전 작업
이미지의 shape을 torch의 squeeze를 통해 조절하고, numpy화 한다.
label도 넘파이화 해준다.
6. 데이터 시각화
02. PyTorch Layer 이해하기
▶ Dataset 불러오기
1. 라이브러리 import
2. data Loader
3. 데이터 시각화로 살펴보기
▶ 각 Layer별 설명
▷Convolution
1. convolution 함수 적용
nn_channels( in_channels, out_channels, kernel_size, stride )
- in_channels: 받게 될 channel의 갯수
- out_channels: 보내고 싶은 channel의 갯수
- kernel_size: 만들고 싶은 kernel(weights)의 사이즈
(텐서플로우에서는 in_channel 을 설정하지 않는다.)
2. 시각화 (input, weight, output)
2-1. weight 시각화를 위해 slice하고 numpy화 한다.
- 여기서 weight는 학습 가능한 상태이기 때문에 바로 numpy로 뽑아낼 수 없음
- detach() method는 그래프에서 잠깐 빼서 gradient에 영향을 받지 않게 함
2-2. input과 output도 시각화를 위해 numpy화 한다.
2-2. 시각화
▶Pooling
1. Pooling 함수 적용
F.max_pool2d(input, kernel size, stride)
2. 시각화
2-1. 시각화를 위해 weight가 있는지 확인해본다.
weight가 없어서 바로 numpy화 가능하다.
2-2. 시각화
▶Linear
nn.Linear는 2d가 아닌 1d만 들어가기 때문에 .view() 1D로 펼쳐줘야 한다.
> 우선 activation function은 생략하고, 이후에 모델을 한번에 쌓을 때 사용할 것이다.
> flatten을 할거고, 그 이후로 linear 를 거쳐가도록 할 것이다 .
1. view와 reshape으로 flatten 진행
2. 시각화로 확인
▶ Softmax
결과를 numpy로 꺼내기 위해선 weight가 담긴 Linear에 weight를 꺼내줘야함
no grad 안하면 softmax를 볼 수 없음. 학습의 모드의 경우 볼 수 없음
torch.no_grad() : 안의 weight 무시
▶Layer 쌓기
+ Layer 쌓기에서 forward 함수에서 x=x.view(-1, 4*4,*50) 은 아래코드 처럼 이미지를 model에 넣어 확인한다.
'Study > AI&DeepLearning' 카테고리의 다른 글
Tensorflow와 PyTorch 비교 (0) | 2021.01.18 |
---|---|
[PyTorch] Optimization & Training & Evaluating (0) | 2021.01.18 |
Evaluating & Prediction (0) | 2021.01.18 |
Optimization & Training (Beginner / Expert) (0) | 2021.01.18 |
각 Layer별 살펴보기 (0) | 2021.01.11 |