딥 러닝을 위해 PyTorch를 선택해야하는 이유
딥 러닝 과 머신 러닝 은 지난 몇 년 동안 모든 사람들 사이에서 가장 인기있는 단어였으며 이에 대한 완벽한 설명이 있습니다.
머신 러닝을 통해 시스템은 경험을 통해 학습 할 수 있었으며 딥 러닝은 광범위한 데이터 세트를 사용하여 머신 러닝을 대규모로 확장했습니다. ML 및 DL에있는이 부스트로 상승했다 다양한 프로그래밍 언어 의 도서관 와서 활성화 프로그래머 , 연구원 및 데이터 과학자를 생각할 수없는을 달성 할 수 있습니다. 최고의 Deep Leaning 라이브러리에 대한 가장 강력한 경쟁자 중 일부는 TensorFlow 및 PyTorch 입니다. 지금은 PyTorch에 더 중점을 둘 것입니다.
파이 토치
Facebook 은 Lua의 Torch 라이브러리를 기반으로하는 2016 년 프로그래밍 장면을 위해 PyTorch 를 출시했습니다 .
PyTorch는 무료 오픈 소스 머신 러닝 라이브러리 이며 현재 v1.4 입니다. PyTorch는 거의 3 년 동안 출시되었으며 더 나은 위치에 있기 위해 많은 개선을 거쳤습니다. PyTorch는 다른 경쟁 제품보다 빠르고 Pythonic 느낌이 들도록 만들어졌습니다. 또한 C, C ++ 및 Tensor 컴퓨팅을 지원 합니다.
Google 트렌드 — 시간 경과에 따른 PyTorch 관심
딥 러닝을 위해 PyTorch를 선택해야하는 이유
PyTorch를 시도하지 말아야하는 이유에 대해 설명하기 전에, 다음은 PyTorch가 탄생하는 데 도움 이 된 독특하고 흥미로운 딥 러닝 프로젝트 및 라이브러리 몇 가지입니다 .
● CheXNet : 딥 러닝을 통해 흉부 X- 레이에서 방사선 전문의 수준의 폐렴 감지.
● Horizon : 응용 강화 학습을위한 플랫폼 (Applied RL)
● PYRO : Pyro는 Python으로 작성되고 백엔드에서 PyTorch가 지원하는 범용 확률 프로그래밍 언어 (PPL)입니다.
● 도토 로 NVIDIA 3D 깊은 학습을 가속화시킬 수있는 PyTorch 라이브러리로
● 프로젝트에 컴퓨터 비전을 구현하기위한 TorchCV
● 딥 러닝을위한 도구 세트로서의 PyDLT
● fastai 라이브러리는 신경망 훈련 프로세스를 최적화합니다.
● 그리고 훨씬 더.
TensorFlow 및 PyTorch를 기반으로 빌드 된 몇 가지 프레임 워크 및 프로젝트입니다. Github와 TF 및 PyTorch의 공식 웹 사이트에서 자세한 내용을 확인할 수 있습니다.
TensorFlow의 세계 에서 PyTorch 는 강점 을 가지고 자체적으로 보유 할 수 있습니다. 다음은 PyTorch가 딥 러닝 프로젝트에 적합한 이유를 설명하는 몇 가지 주요 내용입니다 .
1. PyTorch는 더 Pythonic입니다
PyTorch 는 좀 더 비단뱀적인 방식으로 코드를 작성할 수있는 프레임 워크입니다 . 또한 순진한 파이썬 코드를 사용하여 지원하는 종류의 역 동성 이 놀랍습니다.
PyTorch는 다른 라이브러리와 비교할 때 Python을 더 선호하는 경향이 있습니다. 그것은 PyTorch 상대적이기 때문이다 이해하기 쉽고 더 느낌과 자연 , 기본 및 파이썬 코드와 일치 .
Python으로 작업 한 사람이라면 손실 함수, 최적화 프로그램, 변환, 데이터 로더 및 더 많은 클래스와 같은 PyTorch를 사용하여 모든 것을 집에있는 것처럼 느낄 것입니다.
각 PyTorch 예제 (Vision 및 NLP)의 코드는 공통 구조를 공유합니다.
2. 사용하기 쉬움
PyTorch와 비교할 때 TensorFlow는 상대적으로 가파른 학습 곡선을 가지고 있습니다. Python 프로그래머는 PyTorch를 조정하는 데 시간이 덜 필요하므로 Python 프레임 워크의 확장처럼 느껴질 것입니다. 손쉬운 디버깅 과 훌륭한 간단한 API 세트는 프로그래머가 PyTorch를 쉽게 익힐 수 있도록하는 데 중요한 역할을합니다.
3. 유용한 라이브러리
훌륭한 커뮤니티 지원은 커뮤니티에 대한 큰 열정과 기여를 가져옵니다. 프로그래머는 PyTorch를 사용하여 관심있는 모든 사람이 엿볼 수있는 몇 가지 프로젝트를 만들었습니다. Computer Vision , Natural Language Processing 및 Generative Libraries와 같은 다양한 도메인에서 이러한 프로젝트 중 소수의 조합 목록은 다음 과 같습니다.
● pro_gan_pytorch를 사용하여 ProGAN 기능 활용
● 베이지안 최적화 사용을위한 BoTorch
● 대화 모델 공유, 학습 및 테스트를위한 ParlAI
● 신경 기계 번역 시스템 구현을위한 OpenNMT-py
● 다국어 단어 삽입을위한 MUSE
● scikit-learn 코드를 PyTorch와 통합하기위한 skorch
4. 손쉬운 데이터 병렬화
PyTorch의 데이터 병렬 처리는 효율적이며 데이터를 일괄 처리 로 분할 한 다음 처리를 위해 여러 GPU로 전송됩니다. 이 기술을 사용하여 PyTorch는 CPU에서 GPU로 워크로드의 상당 부분을 이동할 수 있습니다. 들어 데이터 병렬 처리 , 그것은 torch.nn.DataParallel 클래스를 사용합니다.
Distributed Data-Parallel 은 PyTorch의 기능으로, Data-Parallel과 결합하여 단일 GPU에 충분한 대용량 데이터 세트 및 모델을 요구하는 사용 사례를 처리 할 수 있습니다. GPU 풀에 대한 모든 작업이 완료되면 결과가 수집, 병합되어 Data-Parallel에 의해 다시 전송됩니다.
5. 연구자에게 우수
PyTorch는 프레임 워크 작업을하는 연구원의 최소 70 %가 사용하는 것으로 입증 되었기 때문에 연구원들 에게 신의 선물입니다 . 애플리케이션 개발을위한 업계 최고의 선택 임에도 불구하고 TensorFlow는 아직이 측면에서 PyTorch를 따라 잡지 못했습니다. 그 뒤에있는 한 가지 이유 는 PyTorch가 더 나은 성능을 제공해야하는 단순성과 사용 편의성 때문일 수 있습니다 .
6. 모바일 준비
v1.3부터 PyTorch는 Android 및 iOS 장치에 대한 배포 지원을 추가했습니다. 이 기능은 PyTorch의 모든 이점을 엣지 장치에 제공하여 낮은 지연 시간을 요구하는 애플리케이션을 충족시킵니다. PyTorch 모바일의 목표는 모바일 플랫폼 용 기본 API를 지원하여 개발주기를 줄이고 Caffe2와 같은 모바일 프레임 워크로 내보낼 필요를 없애는 것입니다. 이를 통해 기기의 설치 공간을 크게 줄일 수 있습니다. 더 나은 제어를 위해 빌드 스크립트의 정밀한 미세 조정에 대한 지원도 추가되었습니다.
PyTorch Mobile 시작하기 :
Android에서 시작하기
iOS에서 시작하기
7. 쉬운 디버깅
PyTorch는 각 줄에 액세스 할 수있는 옵션과 각 줄 다음에 인쇄하는 일반적인 방법이있을 때 디버그하기 쉽습니다. 가장 중요한 점은 PyTorch의 개체와 작업에 기호 참조가 아닌 실제 데이터가 포함되어 있어 프로그래머의 삶이 더 쉬워진다는 것입니다. PyTorch의 표준 디버거 중 일부는 다음과 같습니다.
● ipdb
● pdb
● PyCharm
예를 들어, pdb의 "pdb.set_trace ()"함수를 사용하여 코드에 중단 점을 배치하여 오류의 원인을 드릴 다운 할 수 있습니다. 또한 PyTorch의 동적 계산 그래프는 코드가 실행되는 동안 동적 수정 및 신속한 디버깅 을 허용합니다 .
8. ONNX 지원
Open Neural Network Exchange 는AI 프로그래머가 다양한 프레임 워크, 도구 및 라이브러리에서 상호 교환 적으로 작업 할 수있는 공통 기반을 제공함으로써 인공 지능 을위한 오픈 소스 생태계 역할을합니다. ONNX는 여러 프레임 워크 및 하드웨어에서 작동하는 표준 파일 형식을 제공하여이를 수행합니다.
PyTorch와 관련하여 ONNX는 PyTorch 및 Caffe2, MXNet, TensorFlow 등과 같은 광범위한 기타 프레임 워크에 대한 기본 지원을 제공합니다. ONNX를 사용하면 AI 프로그래머가 PyTorch 모델 을 다른 프레임 워크가 통합 할 수있는 개방형 형식으로 쉽게 내보내고 마이그레이션 할 수 있습니다.
9. 동적 계산 그래프 지원
모든 모델을 방향성 비순환 그래프로 보는 PyTorch는 계산 그래프를 정의하는 동적 접근 방식을 제공합니다. 다른 프레임 워크는 정적 그래프 정의를 허용하지만 PyTorch는 이동 중에 자유롭게 조작 할 수 있는 동적 계산 그래프 생성을 지원합니다 . PyTorch의 이러한 동적 측면에서 가장 많은 이점을 얻는 요소 중 하나는 다른 많은 것 중에서도 Recurrent Neural Networks입니다.
10. 강력한 커뮤니티 지원
PyTorch는 또한 뛰어난 커뮤니티 지원을 제공합니다 . PyTorch의 집 한 문서를 자세히 의 각 기능에 대해. 라이브러리에 대한 모든 최신 업데이트가 잘 설명되어 있습니다. 새로 추가 될 때마다 도움이되는 자습서 및 관련 리소스를 찾아 귀중한 실습 느낌을 얻을 수 있습니다.
PyTorch Forum 은 초보자가 질문을 게시하고 베테랑이 동료 프로그래머와 아이디어를 공유 할 수있는 우수하고 적극 권장되는 장소입니다. 하루에 100 개가 넘는 게시물이있는 커뮤니티는 매우 활동적이며 사람들이 PyTorch에 참여하도록 장려합니다.
다음은 PyTorch 개발자 커뮤니티 , 리소스 및 자습서 를 통해 기여하고 배우고 질문에 대한 답변을 얻을 수 있습니다.
● Pytorch를 사용한 딥 러닝 : 60 분 블리츠
● Colab에서 Google 드라이브의 가이드 데이터 사용
● 한국어 튜토리얼
결론
딥 러닝 프로그래머를위한 방대한 수의 직관적 인 기능을 갖춘 PyTorch는 다양한 기술 수준의 사람들에게 많은 것을 제공합니다. 쉬운 진입 점을 제공 함에도 불구하고 PyTorch는 특정 측면에서 더 나은 성능을 제공 할뿐만 아니라 추가 고유 기능을 제공하는 기능을 제공하므로 가볍게 받아 들여서는 안됩니다. 우리는 PyTorch의 기능에 대해 가장 일반적으로 언급 된 몇 가지를 논의하여 회의적인 PyTorch로 이동하는 데 도움이됩니다.
더 흥미로운 자료 —
이 기사가 도움이 되었기를 바랍니다. 아래는 여러분이 좋아하기를 바라는 흥미로운 자료입니다.
저자 정보
클레어 D . 에서 콘텐츠의 장인과 상인이다 Digitalogy - 사전 심사 및 최고 수준의 개발자와 디자이너와 연결 사람들이 전 세계에 걸쳐 자신의 특정 요구에 따라하는 기술 소싱 및 사용자 정의 중매 시장. 와 연결 Digitalogy 에 링크드 인 , 트위터 , 인스 타 그램 .