2017-12-24 1 views
-1

PyTorch를 과학 계산 패키지로 사용하고 싶습니다. 그 점에서 그다지 추천할만한 점이 많습니다. Tensors는 기본적으로 GPU 가속 numpy 배열이고, 그 autograd 메커니즘은 신경망 외에도 많은 것들에 잠재적으로 유용합니다.과학 계산 용 PyTorch 사용

그러나 사용 가능한 자습서 및 설명서는 기계 학습을 위해 사람들을 신속하게 불러 들이고 실행하는 데 적합합니다. TensorVariable 클래스에서 사용할 수있는 좋은 정보가 많이 있지만 (해당 자료가 합리적으로 잘 이해하고 있음) nnoptim 패키지는 API를 설명하는 대신 항상 예를 ​​들어 소개되는 것처럼 보이기 때문에 알아 내기가 어렵습니다. 정확히 무슨 일이 일어나고 있는지.

이 시점에서 가장 중요한 질문은 optim 패키지를 nn 패키지도 사용하지 않고 사용할 수 있는지 여부와 그 경우 그렇게하는 방법입니다. 물론 신경 네트워크가 아니더라도 언제든지 nn.Module의 서브 클래스로 시뮬레이션을 구현할 수 있지만이 작업을 수행 할 때 무슨 일이 일어나는지, 그리고 특정 애플리케이션에 어떤 이점/단점이 있는지 이해하고 싶습니다.

광범위하게, 예제를 제시하기보다는 API의 논리적 개요 (구체적으로 nnoptim)를 제공하는 모든 리소스에 대한 정보를 제공합니다.

+0

장래의 실수를 피할 수 있도록 아래 표의 이유를 아는 것이 도움이됩니다. (라이브러리가 의도 된 목적 이외의 용도로 사용되기를 원하는 경우, PyTorch 개발자 중 한 명이 PyTorch : 빠르고 동적 인 심층 학습 및 과학적 컴퓨팅을위한 프레임 워크라는 제목의 프리젠 테이션을 가지고 있습니다. 그건 미친 짓이 아니야.) – Nathaniel

답변

1

nn을 사용하지 않고 optim을 사용하는 것과 관련된 특정 질문에 대한 부분적 자체 응답입니다. 대답은 네가 할 수 있다는 것입니다. 실제로 소스 코드를 살펴보면 optim 패키지는 nn에 대해 알지 못하고 변수와 텐서에만 관심이 있습니다. 나중에 다음

optimizer = optim.Adam([var1, var2], lr = 0.0001) 

과 :

문서는 다음과 같은 불완전한 예제를 제공

for input, target in dataset: 
    optimizer.zero_grad() 
    output = model(input) 
    loss = loss_fn(output, target) 
    loss.backward() 
    optimizer.step() 

model 어디서나 정의하고 nn 함께 할 수있는 뭔가있을 것 같습니다되지 않는 기능, 사실 그것은 단지 output을 과 var2을 사용하여 input에서 계산하는 파이썬 함수 일 수 있습니다. 모든 i 중간 단계는 변수를 사용하여 구별 할 수 있습니다. optimizer.step()을 호출하면 var1var2의 값이 자동으로 업데이트됩니다.

는 PyTorch의 구조의 측면에서

전체, optimnn가 유용하다 같은 기능의 라이브러리와 함께, 미분 기능을 함께 nn는 기본적으로 체인 단지 편리한 방법 인으로, 서로 독립적 것 같다 기계 학습. 그래도 전체 패키지에 대한 기술적 개요에 대한 정보를 얻으실 수 있습니다.