1
- 예제로 배우는 파이토치(PYTORCH )
1
+ 예제로 배우는 파이토치(PyTorch )
2
2
******************************
3
3
**Author **: `Justin Johnson <https://github.com/jcjohnson/pytorch-examples >`_
4
4
**번역 **: `박정환 <https://github.com/9bow >`_
30
30
=============
31
31
32
32
준비 운동: numpy
33
- --------------
33
+ -------------------------------------------------------------------------------
34
34
35
35
PyTorch를 소개하기 전에, 먼저 NumPy를 사용하여 신경망을 구성해보겠습니다.
36
36
@@ -44,7 +44,7 @@ NumPy는 연산 그래프(computation graph)나 딥러닝, 변화도(gradient)
44
44
45
45
46
46
파이토치(PyTorch): 텐서(Tensor)
47
- ------------------------------
47
+ -------------------------------------------------------------------------------
48
48
49
49
NumPy는 훌륭한 프레임워크지만, GPU를 사용하여 수치 연산을 가속화할 수는 없습니다.
50
50
현대의 심층 신경망에서 GPU는 종종 `50배 또는 그 이상 <https://github.com/jcjohnson/cnn-benchmarks >`__ 의
@@ -69,7 +69,7 @@ Autograd
69
69
=========
70
70
71
71
PyTorch: 텐서(Tensor)와 autograd
72
- -------------------------------
72
+ -------------------------------------------------------------------------------
73
73
74
74
위의 예제들에서는 신경망의 순전파 단계와 역전파 단계를 직접 구현해보았습니다.
75
75
작은 2계층(2-layer) 신경망에서는 역전파 단계를 직접 구현하는 것이 큰일이 아니지만,
@@ -91,7 +91,7 @@ PyTorch: 텐서(Tensor)와 autograd
91
91
.. includenodoc :: /beginner/examples_autograd/polynomial_autograd.py
92
92
93
93
PyTorch: 새 autograd Function 정의하기
94
- ----------------------------------------
94
+ -------------------------------------------------------------------------------
95
95
96
96
내부적으로, autograd의 기본(primitive) 연산자는 실제로 텐서를 조작하는 2개의 함수입니다.
97
97
**forward ** 함수는 입력 텐서로부터 출력 텐서를 계산합니다.
@@ -114,10 +114,10 @@ PyTorch에서 ``torch.autograd.Function`` 의 하위클래스(subclass)를 정
114
114
.. includenodoc :: /beginner/examples_autograd/polynomial_custom_function.py
115
115
116
116
`nn ` 모듈
117
- ===========
117
+ ======================
118
118
119
119
PyTorch: nn
120
- -----------
120
+ -------------------------------------------------------------------------------
121
121
122
122
연산 그래프와 autograd는 복잡한 연산자를 정의하고 도함수(derivative)를 자동으로 계산하는
123
123
매우 강력한 패러다임(paradigm)입니다; 하지만 대규모 신경망에서는 autograd 그 자체만으로는 너무
@@ -142,7 +142,7 @@ PyTorch: nn
142
142
.. includenodoc :: /beginner/examples_nn/polynomial_nn.py
143
143
144
144
PyTorch: optim
145
- ---------------
145
+ -------------------------------------------------------------------------------
146
146
147
147
지금까지는 ``torch.no_grad() `` 로 학습 가능한 매개변수를 갖는 텐서들을 직접 조작하여 모델의 가중치(weight)를 갱신하였습니다.
148
148
이것은 확률적 경사하강법(SGD; stochastic gradient descent)와 같은 간단한 최적화 알고리즘에서는 크게 부담이 되지 않지만,
@@ -157,7 +157,7 @@ RMSProp 알고리즘을 사용하겠습니다:
157
157
.. includenodoc :: /beginner/examples_nn/polynomial_optim.py
158
158
159
159
PyTorch: 사용자 정의 nn.Module
160
- -----------------------------
160
+ -------------------------------------------------------------------------------
161
161
162
162
때대로 기존 Module의 구성(sequence)보다 더 복잡한 모델을 구성해야 할 때가 있습니다;
163
163
이러한 경우에는 ``nn.Module `` 의 하위 클래스(subclass)로 새로운 Module을 정의하고,
@@ -168,7 +168,7 @@ PyTorch: 사용자 정의 nn.Module
168
168
.. includenodoc :: /beginner/examples_nn/polynomial_module.py
169
169
170
170
PyTorch: 제어 흐름(Control Flow) + 가중치 공유(Weight Sharing)
171
- -----------------------------------------------------------
171
+ -------------------------------------------------------------------------------
172
172
173
173
동적 그래프와 가중치 공유의 예를 보이기 위해, 매우 이상한 모델을 구현해보겠습니다:
174
174
각 순전파 단계에서 3 ~ 5 사이의 임의의 숫자(random number)를 선택하여 다차항들에서 사용하고,
@@ -185,12 +185,12 @@ PyTorch: 제어 흐름(Control Flow) + 가중치 공유(Weight Sharing)
185
185
.. _examples-download :
186
186
187
187
예제 코드
188
- ========
188
+ =============
189
189
190
190
위의 예제들을 여기서 찾아볼 수 있습니다.
191
191
192
192
Tensors
193
- -------
193
+ -------------------------------------------------------------------------------
194
194
195
195
.. toctree ::
196
196
:maxdepth: 2
@@ -208,7 +208,7 @@ Tensors
208
208
<div style =' clear :both ' ></div >
209
209
210
210
Autograd
211
- --------
211
+ -------------------------------------------------------------------------------
212
212
213
213
.. toctree ::
214
214
:maxdepth: 2
@@ -227,7 +227,7 @@ Autograd
227
227
<div style =' clear :both ' ></div >
228
228
229
229
`nn ` module
230
- -----------
230
+ -------------------------------------------------------------------------------
231
231
232
232
.. toctree ::
233
233
:maxdepth: 2
0 commit comments