파이토치
PyTorch| 원저작자 |
|
|---|---|
| 개발자 | 메타 AI |
| 초기 릴리즈 | 2016년, 전([1] |
| 안정된 릴리스 | 1.12.0[2] / 2022년 6월 28일; 전() |
| 저장소 | github |
| 기입처 | |
| 운영 체제 | |
| 플랫폼 | IA-32, x86-64 |
| 이용가능기간: | 영어 |
| 유형 | 머신러닝 및 딥러닝용 라이브러리 |
| 면허증. | BSD[필요한 건] |
| 웹 사이트 | pytorch |
| 시리즈의 일부 |
| 기계 학습 및 데이터 마이닝 |
|---|
PyTorch는 Torch [3][4][5]라이브러리를 기반으로 하는 오픈 소스 머신 러닝 프레임워크로, 주로 Meta [7][8][9]AI에 의해 개발된 컴퓨터 비전 및 자연 언어 [6]처리와 같은 애플리케이션에 사용됩니다.이 소프트웨어는 Modified BSD 라이센스로 출시된 무료 오픈 소스 소프트웨어입니다.PyTorch는 Python 인터페이스가 더 세련되고 개발의 주요 초점이지만 C++ 인터페이스도 [10]갖추고 있습니다.
Tesla [11]Autopilot, [12]Uber's Pyro, Hugging Face's Transformers,[13] PyTorch [14][15]Lightning, [16][17]Catalyst 등 많은 딥 러닝 소프트웨어가 PyTorch 위에 구축되어 있습니다.
PyTorch는 다음 두 가지 고급 [18]기능을 제공합니다.
역사
Meta(이전의 Facebook)는 PyTorch와 고속 기능 임베딩을 위한 Convolutional Architecture(Caffe2)를 모두 운영하지만 두 프레임워크에 의해 정의된 모델은 상호 호환되지 않습니다.오픈 뉴럴 네트워크 익스체인지(ONNX) 프로젝트는 프레임워크 간 모델 변환을 위해 Meta와 Microsoft에 의해 2017년 9월에 만들어졌습니다.카페2는 2018년 [19]3월 말에 파이토크에 합병되었다.
파이토치 텐서
PyTorch는 텐서(Tensor)라고 하는 클래스를 정의합니다.torch.Tensor)를 사용하여 균일한 다차원 직사각형 숫자 배열에 저장 및 작업을 수행합니다.PyTorch Tensors는 NumPy 어레이와 비슷하지만 CUDA 대응 NVIDIA GPU에서도 동작할 수 있습니다.PyTorch는 AMD의 ROCm이나 Apple의 [20]Metal Framework 등 다른 GPU 플랫폼에도 대응하고 있습니다.
PyTorch는 다양한 유형의 [21]텐서를 지원합니다.
여기서 "텐서"라는 용어는 수학이나 물리학에서와 같은 의미를 지니지 않습니다.이러한 영역에서 단어의 의미는 기계 학습의 단어와 접선적으로만 관련이 있습니다.수학에서, 텐서는 선형 대수학에서 특정한 종류의 물체인 반면, 물리학에서 "텐서"라는 용어는 보통 수학자들이 텐서 장이라고 부르는 것을 가리킨다.
모듈
Autograd 모듈
PyTorch는 자동 미분이라고 불리는 방법을 사용한다.레코더는 수행한 연산을 기록한 후 이를 뒤로 재생하여 구배를 계산합니다.이 방법은 특히 뉴럴 네트워크를 구축하여 포워드 패스에서 파라미터의 미분을 계산함으로써 한 에폭에서 시간을 절약하는 경우에 효과적입니다.
Optim모듈
torch.optim는 뉴럴 네트워크 구축에 사용되는 다양한 최적화 알고리즘을 구현하는 모듈입니다.일반적으로 사용되는 메서드는 대부분 이미 지원되므로 처음부터 구축할 필요가 없습니다.
nn모듈
PyTorch autograd는 계산 그래프를 쉽게 정의하고 구배를 취할 수 있지만 원시 autograd는 복잡한 신경망을 정의하기에는 너무 낮은 수준일 수 있습니다.여기서부터가nn모듈이 도움이 됩니다.그nnmodule은 네트워크의 레이어를 정의하는 것만으로 뉴럴네트워크를 쉽게 만들 수 있는 레이어와 툴을 제공합니다.
PyTorch는 또한 데이터 로딩 유틸리티 및 분산 교육 기능 등 다른 많은 유용한 하위 모듈을 포함하고 있습니다.
예
다음 프로그램은 라이브러리의 낮은 수준의 기능을 간단한 예시와 함께 보여줍니다.
수입품 횃불 d타입 = 횃불.흘러가다 장치 = 횃불.장치("cpu") # CPU의 모든 계산이 실행됩니다. # device = torch.device cuda:0") # GPU의 모든 계산이 실행됩니다. # 텐서 생성 및 난수로 텐서를 채운다. a = 횃불.랜드(2, 3, 장치=장치, d타입=d타입) 인쇄물(a) # 텐서 A의 출력 # 출력: 텐서([-1.1884, 0.8498, -1.7129]), # [-0.8816, 0.1944, 0.5847]]) # 텐서 생성 및 난수로 텐서를 채운다. b = 횃불.랜드(2, 3, 장치=장치, d타입=d타입) 인쇄물(b) # 텐서 B의 출력 # 출력: 텐서([0.7178, -0.8453, -1.3403]), # [ 1.3262, 1.1512, -1.7070]]) 인쇄물(a*b) # 2개의 텐서의 곱셈 출력 # 출력: 텐서([-0.8530, -0.7183, 2.58]), # [-1.1692, 0.2238, -0.9981]]) 인쇄물(a.합()) # 텐서 A의 모든 원소의 합계 출력 # 출력: 텐서(-2.1540) 인쇄물(a[1,2]) # 두 번째 행의 세 번째 열에 있는 요소의 출력(0 기준) # 출력: 텐서(0.5847) 인쇄물(a.맥스.()) # 텐서 A의 최대값 출력 # 출력: 텐서(-1.7129) 다음 코드 블록은 제공된 고급 기능의 예를 보여 줍니다.nn모듈.이 예에서는 선형 레이어를 가진 뉴럴 네트워크가 정의되어 있습니다.
수입품 횃불 부터 횃불 수입품 하지 않다 # PyTorch에서 nn 서브모듈 Import 학급 뉴럴 네트워크(하지 않다.모듈): # 뉴럴 네트워크는 클래스로 정의된다. 방어하다 __init__(자신): # 레이어 및 변수는 __init_ 메서드로 정의됩니다. 잘 하는 군요(뉴럴 네트워크, 자신).__init__() # 모든 네트워크에 있어야 합니다. 자신.평평하게 하다 = 하지 않다.평평하게 하다() # 평탄화 층의 정의. 자신.linear_relu_stack = 하지 않다.시퀀셜( # 레이어 스택의 정의. 하지 않다.선형(28*28, 512), # 입력 및 출력 모양을 가진 선형 레이어 하지 않다.리루(), # ReLU는 nn에서 제공하는 많은 활성화 기능 중 하나입니다. 하지 않다.선형(512, 512), 하지 않다.리루(), 하지 않다.선형(512, 10), ) 방어하다 앞으로(자신, x): # 이 함수는 포워드 패스를 정의합니다. x = 자신.평평하게 하다(x) 로그인 = 자신.linear_relu_stack(x) 돌아가다 로그인 「 」를 참조해 주세요.
레퍼런스
- ^ Chintala, Soumith (1 September 2016). "PyTorch Alpha-1 release".
- ^ "PyTorch 1.12: TorchArrow, Functional API for Modules and nvFuser, are now available". Retrieved 8 July 2022.
- ^ Yegulalp, Serdar (19 January 2017). "Facebook brings GPU-powered machine learning to Python". InfoWorld. Retrieved 11 December 2017.
- ^ Lorica, Ben (3 August 2017). "Why AI and machine learning researchers are beginning to embrace PyTorch". O'Reilly Media. Retrieved 11 December 2017.
- ^ Ketkar, Nikhil (2017). "Introduction to PyTorch". Deep Learning with Python. Apress, Berkeley, CA. pp. 195–208. doi:10.1007/978-1-4842-2766-4_12. ISBN 9781484227657.
- ^ "Natural Language Processing (NLP) with PyTorch – NLP with PyTorch documentation". dl4nlp.info. Retrieved 2017-12-18.
- ^ Patel, Mo (2017-12-07). "When two trends fuse: PyTorch and recommender systems". O'Reilly Media. Retrieved 2017-12-18.
- ^ Mannes, John. "Facebook and Microsoft collaborate to simplify conversions from PyTorch to Caffe2". TechCrunch. Retrieved 2017-12-18.
FAIR is accustomed to working with PyTorch – a deep learning framework optimized for achieving state of the art results in research, regardless of resource constraints. Unfortunately in the real world, most of us are limited by the computational capabilities of our smartphones and computers.
- ^ Arakelyan, Sophia (2017-11-29). "Tech giants are using open source frameworks to dominate the AI community". VentureBeat. Retrieved 2017-12-18.
- ^ "The C++ Frontend". PyTorch Master Documentation. Retrieved 2019-07-29.
- ^ Karpathy, Andrej. "PyTorch at Tesla - Andrej Karpathy, Tesla".
- ^ "Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language". Uber Engineering Blog. 2017-11-03. Retrieved 2017-12-18.
- ^ PYTORCH-TRANSFORMERS: PyTorch implementations of popular NLP Transformers, PyTorch Hub, 2019-12-01, retrieved 2019-12-01
- ^ PYTORCH-Lightning: The lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate, Lightning-Team, 2020-06-18, retrieved 2020-06-18
- ^ "Ecosystem Tools". pytorch.org. Retrieved 2020-06-18.
- ^ GitHub - catalyst-team/catalyst: Accelerated DL & RL, Catalyst-Team, 2019-12-05, retrieved 2019-12-05
- ^ "Ecosystem Tools". pytorch.org. Retrieved 2020-04-04.
- ^ "PyTorch – About". pytorch.org. Archived from the original on 2018-06-15. Retrieved 2018-06-11.
- ^ "Caffe2 Merges With PyTorch". 2018-04-02.
- ^ "Introducing Accelerated PyTorch Training on Mac". pytorch.org. Retrieved 2022-06-04.
- ^ "An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library". analyticsvidhya.com. 2018-02-22. Retrieved 2018-06-11.