어떻게 Pytorch이 시작하려면 : 실제 신경 네트워크를 구축하는 방법

이전 섹션에서, 우리는 데이터 포맷 구배 손실 등 기초 Pytorch을 덮여있다.

이 섹션에서는, 우리는 실제적인 신경 네트워크를 구축 Pytorch을 사용하는 방법을 설명합니다.

그래서 네 부분으로 대략있다, 구축 및 신경망을 훈련 :

데이터 준비, 모델 구축, 평가 기능, 최적화 네트워크 무게

 

 

1. 데이터 준비

    데이터 준비는 여기에 세부 사항으로 이동하지 않는 것입니다, 지난 글에 대해 이야기하고있다.

모델을 구축합니다

 계층 (베이스 신경망 형성 수단)

Y = WX + B를 들어, 선형 모델을 간단하게 구축 할

로부터 가져 선형 torch.nn
INP = 변수 (torch.randn (1,10))
myLayer = 선형 (in_features = 10 out_features = 5, 바이어스 = TRUE)
myLayer (INP)

체중 myLayer.weight 번호로 액세스 할 수
: 출력
이 포함 된 매개 변수를 :

-0.2386 0.0828 0.2904 0.3133 0.2037 0.1858 -0.2642 0.2862 0.2874 0.1141
0.0512 -0.2286 -0.1717 0.0554 0.1766 -0.0517 0.3112 0.0980 -0.2364 -0.0442
0.0776 -0.2169 0.0183 -0.0384 0.0606 0.2890 -0.0068 0.2344 0.2711 -0.3039
0.1055 0.0224 0.2044 0.0782 0.0790 0.2744 -0.1785 - 0.1681 -0.0681 0.3141
0.2715 0.2606 -0.0362 0.0113 0.1299 -0.1112 -0.1652 0.2276 0.3082 -0.2745
[× 105 크기의 torch.FloatTensor]

편향 액세스 myLayer.bias #
출력 :
파라미터 함유 :
-0.2646
-0.2232
0.2444
0.2177
0.0897
. torch.FloatTensor 크기 5

고밀도 또는 완전히 연결 층 : 선형 층과 같은 다른 프레임 워크에 다른 이름을 가지고있다.

대부분의 경우, 실제 문제를 해결하기 위해, 필요 여러 레이어를 구축 :

myLayer1 = 선형 (10,5 )
myLayer2 = 선형 (5,2 )
myLayer2 (myLayer1 (INP))

매개 변수의 각각은 동일하지 않습니다 :

레이어 무게 1
레이어 1 3.0 
레이어 2 2.0

그러나 단순히 선형 네트워크 층을 적층하고 효과적으로 더 많은 새로운 것들을 배울하는 데 도움이되지 수 있습니다. 예를 들면 :

Y = 2 (3 ×) -2LinearLayers

Y = 6 (X1) -1 LinearLayers

위의 문제를 해결하기 위해서는 비선형 기능을 도입 할 필요가있다. 다음은 몇 가지 일반적인 선형 함수이다 :

S 상 : F (X) = 1 / (1 + E는 ^ (- X))
TANH :
ReLU : F (X)의 최대 (0, X) =
누수를 ReLU

sample_data = 변수 (torch.Tensor ([1,2, -1, -1 ]))
myRelu = 재개 ()
myRelu (sample_data)
산출:
포함 된 변수 :
1 2 0 0
[1X4 크기의 torch.FloatTensor]

깊은 학습 알고리즘을 구축

간단한 모델 클래스 nn.Module 빌드를 기반으로

클래스 MyFirstNetwork (nn.Module) :
     데프  __init__ (자기, input_size, hidden_size, output_size) :
        슈퍼 (MyFirstNetwork, 자기). __init__ ()
        self.layer1 = nn.Linear (input_size, hidden_size)
        self.layer2 = nn.Linear (hidden_size, output_size)
     DEF  __forward__ (자동 입력)
        아웃 = self.layer1 (입력)
        아웃 = nn.ReLU (아웃)
        아웃 = self.layer2 (아웃)
         반환 밖으로

가장 큰 문제는 기계 학습을 해결하기 위해 : 분류, 회귀, 복수의 분류.

1 리턴 : 선형 네트워크의 가장 가까운 층의 출력값 중 하나를 사용.

(2) 분류 : S 자형 기동 기능을 이용하여 최종 출력 값 (거의 0 또는 1). 그 2 분류.

(3) 여러 분류 : 최종 출력으로서 softmax를 층을 사용.

 

 

 

추천

출처www.cnblogs.com/jimchen1218/p/12021682.html