얼마전 파이토치 컨퍼런스에서 버전 2.0에 대한 발표가 있었습니다. 내년에는 새로운 버전의 파이토치와 텐서플로가 또 한번 각축전을 벌일 것 같네요. 때마침 파이토치와 라이트닝 라이브러리를 배울 수 있는 좋은 온라인 코스가 새롭게 오픈되었습니다. <머신 러닝 교과서 3판>의 저자 세바스찬 라시카가 위스콘신 대학교를 떠나 합류한 파이토치 라이트닝에서 그동안 준비한 딥러닝 온라인 코스를 어제 공개했습니다. 딥러닝 기초부터, 수학, 파이토치, 라이트닝까지 한 번에 배우고 싶은 분들에게 딱 맞는 코스같네요! 물론 모두 무료입니다! 😀
카테고리 보관물: PyTorch
[핸즈온 머신러닝 2], [GAN 인 액션], [파이썬을 활용한 머신러닝 쿡북], [케라스 창시자에게 배우는 딥러닝], [파이토치로 배우는 자연어 처리] 텐서플로 2.6과 파이토치 1.9 버전 테스트 완료
[핸즈온 머신러닝 2], [GAN 인 액션], [파이썬을 활용한 머신러닝 쿡북], [케라스 창시자에게 배우는 딥러닝]의 주피터 코드를 텐서플로 2.6, 케라스 2.6 버전에서 테스트하여 깃허브에 반영하였습니다. [파이토치로 배우는 자연어 처리]는 파이토치 1.9 버전에서 테스트하여 깃허브에 반영하였습니다. 책을 보실 때 참고하세요. 감사합니다!
“파이토치로 배우는 자연어 처리”가 출간되었습니다.

<파이토치로 배우는 자연어 처리>는 델립 라오Delip Rao, 브라이언 맥머핸Brian McMahan이 지은 <Natural Language Processing with PyTorch>의 번역서입니다.
저의 첫 번째 파이토치 책이네요. 부족한 점이 많지만 재미있게 봐주세요. 책을 내기까지 도와 주신 모든 분들께 정말 감사드립니다!
PyTorch 1.1.0 Release
파이토치 1.1.0 버전이 릴리스되었습니다. 1.1.0버전부터 공식적으로 텐서보드를 지원합니다. 또한 CUDA 8.0 버전은 더 이상 지원하지 않습니다. CUDA 9.0이나 10.0을 사용하세요.
자세한 내용은 릴리스 노트를 참고하세요.
콘다(conda)를 사용하면 파이토치를 손쉽게 설치할 수 있습니다. 윈도(Windows) 바이너리는 파이썬 2.7을 지원하지 않습니다. macOS 바이너리는 GPU를 지원하지 않습니다.
# CUDA 9.0 or 10.0 for Linux, Windows $ conda install pytorch torchvision cudatoolkit=9.0 -c pytorch $ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch # CPU for Linux, Windows $ conda install pytorch-cpu torchvision-cpu -c pytorch # macOS $ conda install pytorch torchvision -c pytorch
PyTorch 0.4.0 Release
파이토치PyTorch 0.4.0 버전이 릴리즈되었습니다. 많은 기능이 추가되고 개선되었다고 합니다. 그중에서도 눈에 띄이는 것은 텐서(Tensor)와 변수(Variable)를 하나로 합친 것과 checkpoint 컨테이너입니다. checkpoint 컨테이너를 사용해 모델을 나누어 만들면 메모리가 부족하여 정방향에서 계산한 값을 유지하지 못할 경우 역전파를 위해 가까운 체크포인트에서부터 정방향 패스의 중간 값들을 다시 계산합니다. 수행시간은 느려지겠지만 메모리가 작은 GPU를 사용하는 경우에는 아주 반가운 소식입니다! 또 한가지는 드디어 윈도우즈 지원이 됩니다! 다만 윈도우즈는 파이썬 3.5와 3.6 만을 지원합니다.
더 자세한 변경사항은 릴리즈 노트를 참고하세요. 설치할 때 conda 대신에 pip를 사용할 수도 있습니다. 윈도우즈에서 pip로 설치할 경우는 wheel 패키지 경로를 직접 지정해 주어야 합니다.
# macOS (no GPU) $ conda install pytorch torchvision -c pytorch # Linux CUDA 8.0 $ conda install pytorch torchvision -c pytorch # Linux CUDA 9.0 $ conda install pytorch torchvision cuda90 -c pytorch # Linux CUDA 9.1 $ conda install pytorch torchvision cuda91 -c pytorch # Linux CPU $ conda install pytorch-cpu torchvision -c pytorch # Windows CUDA 8.0 $ conda install pytorch -c pytorch # Windows CUDA 9.0 $ conda install pytorch cuda90 -c pytorch # Windows CUDA 9.1 $ conda install pytorch cuda91 -c pytorch # Windows CPU $ conda install pytorch-cpu -c pytorch # pip를 사용할 때 wheel 경로 # 파이썬 3.5, CUDA 8.0: http://download.pytorch.org/whl/cu80/torch-0.4.0-cp35-cp35m-win_amd64.whl # 파이썬 3.5, CUDA 9.0: http://download.pytorch.org/whl/cu90/torch-0.4.0-cp35-cp35m-win_amd64.whl # 파이썬 3.5, CUDA 9.1: http://download.pytorch.org/whl/cu91/torch-0.4.0-cp35-cp35m-win_amd64.whl # 파이썬 3.5, CPU: http://download.pytorch.org/whl/cpu/torch-0.4.0-cp35-cp35m-win_amd64.whl # 파이썬 3.6, CUDA 8.0: http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-win_amd64.whl # 파이썬 3.6, CUDA 9.0: http://download.pytorch.org/whl/cu90/torch-0.4.0-cp36-cp36m-win_amd64.whl # 파이썬 3.6, CUDA 9.1: http://download.pytorch.org/whl/cu91/torch-0.4.0-cp36-cp36m-win_amd64.whl # 파이썬 3.6, CPU: http://download.pytorch.org/whl/cpu/torch-0.4.0-cp36-cp36m-win_amd64.whl # Windows 공통 $ pip3 install torchvision
PyTorch 0.3.1 Release
파이토치PyTorch 0.3.1 버전이 릴리즈되었습니다. 주로 버그 수정과 성능 향상을 포함하고 있습니다. 자세한 변경사항은 릴리즈 노트를 참고하세요.
파이토치 0.3.1 부터는 CUDA 3.0, 5.0과의 호환성이 삭제되었고, CUDA 7.5를 위한 바이너리 설치가 제외되었습니다. 대신 CUDA 8, 9, 9.1용 바이너리 설치가 제공됩니다. 지원하는 파이썬 버전은 2.7, 3.5, 3.6 입니다.
# macOS (no GPU) $ conda install pytorch torchvision -c pytorch # Linux CUDA 8.0 $ conda install pytorch torchvision -c pytorch # Linux CUDA 9.0 $ conda install pytorch torchvision cuda90 -c pytorch # Linux CUDA 9.1 $ conda install pytorch torchvision cuda91 -c pytorch # Linux CPU $ conda install pytorch-cpu torchvision -c pytorch
지난 달 말에는 마이크로소프트의 CNTK 2.4 버전이 릴리즈 되었습니다. 자세한 사항은 릴리즈 노트를 참고하세요.
PyTorch 0.3.0 Release
파이토치PyTorch 0.3.0 버전이 릴리즈되었습니다. 주요한 변경 사항으로는 loss를 reduce할지 여부를 지정할 수 있는 매개변수, autograd를 위한 프로파일러, 새로운 레이어와 다양한 함수 등 많은 기능이 추가, 변경되었고 성능이 많이 향상되었다고 합니다. 자세한 변경사항은 릴리즈 노트를 참고하세요.
파이토치 0.3.0 부터는 CUDA 9과 cuDNN 7을 지원하고 conda 채널이 pytorch로 바뀌었습니다. CUDA 지원은 텐서플로보다 조금 더 빠른 것 같습니다. 또 CUDA 8, 7.5 버전에 대한 바이너리도 유지하고 있어 편리한 것 같습니다. 지원하는 파이썬 버전은 2.7, 3.5, 3.6 입니다.
# macOS (no GPU) $ conda install pytorch torchvision -c pytorch # Linux CUDA 7.5 $ conda install pytorch torchvision cuda75 -c pytorch # Linux CUDA 8.0 $ conda install pytorch torchvision -c pytorch # Linux CUDA 9.0 $ conda install pytorch torchvision cuda90 -c pytorch
PyTorch 0.2.0 Release
파이토치PyTorch 0.2.0 버전이 드디어 릴리즈 되었습니다. 3개월이 넘게 걸렸지만 ICML 2017에 때를 맞추었네요.^^ 넘파이NumPy 스타일의 브로드캐스팅broadcasting, 분산처리, 강화된 배열 인덱싱, 2계 도함수 그래디언트second order gradient 등 많은 기능이 포함되었습니다. 추가된 기능에 대한 자세한 설명은 릴리즈 노트를 참고하세요. conda를 사용하면 비교적 편리하게 파이토치를 설치할 수 있습니다.
# Linux CUDA 7.5, macOS for Python 2.7/3.5/3.6 $ conda install pytorch torchvision -c soumith # Linux CUDA 8.0 $ conda install pytorch torchvision cuda80 -c soumith
TF 성능 팁: Winograd 알고리즘 설정
텐서플로우tensorflow에서 훈련 성능을 높일 수 있는 위노그라드Winograd 콘볼루션 알고리즘이 디폴트로 활성화되어 있지 않습니다. ResNet을 비롯하여 요즘 규모의 콘볼루션 모델들에서 3×3 필터가 대세로 자리잡고 있습니다. 위노그라드 알고리즘은 3×3 행렬 계산의 연산 횟수를 줄여 줌으로써 모델 훈련 성능이 크게 증가됩니다. 이미 NVIDIA는 cuDNN5에서 부터 위노그라드 콘볼루션을 지원하고 있습니다. 일례로 Wide ResNet 에서 CIFAR10 데이터로 훈련시킬 때 K80 GPU에서 35%정도 빨라졌다고 합니다. 하지만 성능 개선의 정도는 GPU에 따라 다릅니다. 이 설정을 하려면 쉘이나 파이썬에서 아래와 같이 환경변수 TF_ENABLE_WINOGRAD_NONFUSED 를 지정해야 합니다.
os.environ['TF_ENABLE_WINOGRAD_NONFUSED'] = '1'
$export TF_ENABLE_WINOGRAD_NONFUSED=1
위노그라드 알고리즘의 설정이 파이토치PyTorch와의 성능 차이 요인 중 하나로 지적되면서 조만간 기본으로 사용하도록 설정될 것 같습니다. 일전에 소개해 드린 텐서플로우의 성능 테스트에서 사용한 코드도 위노그라드 설정을 지정하고 있습니다.
얼마전 NVIDIA가 GTC17에서 선보인 볼타Volta 아키텍처에서 16비트 부동소수점을 사용하여 성능을 크게 올렸다고 발표했습니다. 이와 동시에 페이스북이 지원하고 있는 Caffe2가 이미 16비트 부동소숫점을 지원한다고 발표했고 파이토치도 곧 기능을 추가할 거라고 언급했습니다. 아무래도 NVIDIA와 페이스북 간의 공조가 더 긴밀한 듯 합니다. 🙂
PyTorch v0.1.12
파이토치PyTorch의 0.1.12 버전이 릴리즈되었습니다. 이 버전은 0.1.x의 마지막 버전으로 알려져 있습니다. 넘파이NumPy 스타일을 따르도록 API 가 조금 변경되었고 CUDA의 희박행렬 연산 지원이 추가되었습니다. 그 외에 성능향상과 버그들이 많이 수정되었다고 합니다. 다음 버전은 0.2 버전으로 분산 처리와 그래디언트의 그래디언트를 계산하는 기능이 추가될 예정입니다.
때맞춰 텐서플로우 성능 테스트 자료가 공개되었습니다. 이는 얼마전 발표된 Caffe2의 성능 자료에 대한 반격으로 보입니다. NVidia DGX-1 에서 테스트한 결과를 보면 카페2와 텐서플로우가 앞서거니 뒤서거니 합니다. 하지만 여전히 초당 훈련 이미지 처리수가 중요한 성능지표인지에 대해서는 논란의 여지가 있습니다. 여기에 사용된 텐서플로우 벤치마크를 위한 코드는 상당히 최적화시킨 것 같습니다.
파이토치를 설치하려면 리눅스와 맥OS에서 콘다 명령을 사용할 수 있습니다. 맥OS에서 CUDA 지원을 사용하려면 소스 컴파일을 해야합니다. 아직 윈도우즈 환경은 지원하지 않고 있습니다.
conda install pytorch torchvision -c soumith