1700달러 머신러닝 박스 : 조립, 설정 및 벤치마크

나는 수년 동안 얇은 MacBook의 형태로 씬 클라이언트를 사용 해서 익숙해져 있었습니다. 그래서 내가 딥러닝에 들어갔을 때, 아마존 P2 클라우드 서버라는 새로운 브랜드로 작업을 이동했습니다. 선행 비용, 많은 모델을 동시에 교육 할 수있는 능력, 그리고 훈련되는 동안 발생하는 열의 냉각 등의 장점이 있었습니다.

그러나 시간이 지남에 따라 AWS 청구서는 10배나 저렴한 Spot 인스턴스로 전환해도 계속 증가했습니다 . 또한 한 번에 둘 이상의 모델을 훈련하지도 않았습니다. 모델을 훈련시키는 동안 나는 점심, 운동을 했습니다. 그리고 모델이 훈련되면 돌아와서 확인했습니다.

그러나 결국 모델의 복잡성은 증가하고 훈련하는 데 더 오래 걸리게 되었습니다. 종종 내가 2일간의 훈련을 마친 모델에서 내가 한 일을 다 잊어 버린 경우도 있었습니다. Fast.AI 포럼에 있는 다른 사람들의 경험에 비추어 볼 때 , 나는 집에 정착하고 전용 딥러닝 박스를 갖기로 결정했습다.

가장 중요한 이유는 모델을 프로토타이핑하는 동안 시간을 ​​절약하는 것이 었습니다. 더 빨리 훈련하면 피드백 시간이 더 짧아집니다. 따라서 모델과 그 결과에 대한 가정 사이에서 나의 두뇌는 관련성을 연결하는 것이 더 쉬울 것입니다.

그리고 비용을 절감하고 싶었습니다. Amazon Web Services (AWS)는 P2 인스턴스에 엔비디아 K80 GPU를 제공했습니다. 최근 AWS 청구서는 매월 60-70 달러 정도였습니다. 또한 ImageNet과 같은 대형 데이터세트를 저장하는 데 비용이 많이 듭니다.

그리고 마지막으로, 나는 10년 넘게 데스크톱을 가지고 있지 않았으며 최신형을 사용해 보고 싶었습니다.

다음은 선택, 개인적 의견 등에 대한 것으로 구성 요소 선택에서 벤치마킹까지 내요을 정리하였습니다.

주) 원화로 환산은 1달러는 1,120원으로 산정하였습니다. (게시물을 올리는 이 순간)

목차

1. 구성 요소 선택

2. 조립

3. 소프트웨어 설정

4. 벤치 마크

구성 요소 선택

나에게 합리적인 예산은 현재의 계산 지출 중 약 2년 동안의 사용 예상치 였습니다. AWS의 경우 월 70달러(78,400원)로 모든 것을 위해 약 1700달러(1,904,000원)가 됩니다.

사용된 모든 구성 요소를 확인할 수 있습니다 . PC Part Picker 사이트는 구성 요소 중 일부가 잘 작동하지 않는지 여부를 확인하는 데에도 유용합니다.

GPU

GPU는 박스에서 가장 중요한 구성 요소입니다. 딥러닝 네트워크를 빠르게 훈련시켜 피드백의 주기를 단축시킵니다.

GPU는 다음과 같은 점에서 중요합니다. a) DL에서의 대부분의 계산은 행렬 곱셈과 같은 행렬 연산입니다. CPU에서 수행되면 속도가 느려질 수 있습니다. b) 전형적인 신경 회로망에서 수천개의 연산을 수행함에 따라 속도가 실제로 증가합니다 (나중에 벤치 마크에서 볼 수 있듯이). 반면에 GPU는 이러한 작업을 모두 병렬로 실행할 수 있어 편리합니다. 그들은 많은 수의 코어를 가지고 있으며, 더 많은 수의 스레드를 실행할 수 있습다 . GPU는 훨씬 더 높은 메모리 대역폭을 가지고 있기 때문에 오히려 큰 데이터에는 메모리 용량이 크면 좋습니다.

GTX 1070 ($360/403,2000원), GTX 1080 ($500/560,000원), GTX 1080 Ti ($700/784,000원) 그리고 Titan X ($1320/1,478,400원) 와 같은 몇 가지 엔비디아 카드가 선택 대상이었습니다 .

성능면에서 GTX 1080 Ti와 Titan X는 비슷합니다. 대략 GTX 1080은 GTX 1070보다 약 25% 빠르며 GTX 1080 Ti는 GTX 1080보다 약 30% 빠릅니다.

Tim Dettmers는 새로운 카드가 출시되면 정기적으로 업데이트되는 딥러닝을 위한 GPU 선택에 대한 훌륭한 기사를 제공합니다. 다음은 GPU를 선택할 때 고려해야 할 사항입니다.

  1. 제조사 : 비교 경쟁이 없습니다. 그냥 nVIdia입니다. nVidia는 여러 해 동안 머신러닝에 초점을 맞추어 왔으며 그 결과는 매우 효과적입니다. CUDA 툴킷은 문자 그대로 DL 전문가에게 유일한 선택입니다.

  2. 예산 : Titan X는 1080 Ti와 동일한 성능을 제공하면서 약 500달러(560,000원) 더 비쌉니다.

  3. 싱글/멀티플 : 하나의 1080 또는 1080 Ti 대신 1070 두 개를 선택하는 것을 고려해보십시오. 이것은 두 개의 카드로 모델을 훈련 시키거나 한 번에 두 개의 모델을 훈련시키는 것을 허용합니다. 현재 여러 GPU에서 모델을 교육하는 것은 번거롭지만 PyTorch와 Caffe 2가 GPU의 개수에 따라 거의 선형 스케일링을 제공하므로 상황이 바뀌고 있습니다. 한 번에 두 모델을 훈련하는 것이 더 가치있는 것처럼 보이는 다른 옵션이 있지만 지금은 하나의 더 강력한 카드를 선택하고 나중에 두 번째 모델을 위해 추가하기로 결정했습니다.

  4. 메모리 : 더 많은 메모리가 좋습니다. 더 많은 메모리를 사용하면 더 큰 모델을 배치하고 교육 중 (gradient flow를 돕는) 충분히 큰 배치를 사용할 수 있습니다.

  5. 메모리 대역폭 : GPU는 대용량 대역폭의 메모리에서 잘 작동 할 수 있습니다. Tim Dettmers는 이것이 GPU의 가장 중요한 특징이라고 지적합니다.

이 모든 것을 고려하여, 주로 훈련 속도 향상을 위해 GTX 1080Ti를 선택했습니다. 나는 두 번째 1080Ti를 곧 추가 할 계획입니다.

CPU

GPU가 딥러닝의 MVP 임에도 불구하고 CPU는 여전히 중요합니다. 예를 들어, 데이터 준비는 대개 CPU에서 수행됩니다. 우리가 모든 데이터 준비를 병렬 처리하려면 코어의 수와 코어당 스레드 수가 중요합니다.

예산을 유지하기 위해 인텔 I5 7500 을 190달러(212,800원)에 구입했습니다. 상대적으로 저렴하지만 성능을 떨어뜨리지 않을 정도로 좋습니다.

주의 : 일부의 사람이 지적한 사항으로 각 GPU에 16개의 PCIe 레인을 설치하여 가능한 한 빨리 데이터를 가져 오려고 하는 경우 (PCIe 3.0은 16GB/s), 두 개의 카드에 32개의 PCIe 레인이 필요하게 됩니다. 그러나 선택한 CPU에는 16레인만 지원합니다. 따라서 2GPU는 2×16 대신 2×8 모드로 실행됩니다. 이것은 그래픽 카드의 병목 현상으로 이어질 수 있습니다. 따라서 40라인 이상을 지원하는 CPU가 권장됩니다.

좋은 솔루션은 E5-1620 v4 (300달러/336,000원) 와 같은 인텔 제온 프로세서 이거나 i7-6850K (590달러/660,800원) 와 같은 고급형 데스크탑용 프로세서입니다.

메모리 (RAM)

큰 데이터세트로 작업하는 경우 많은 메모리를 갖는 것이 좋습니다. 2개의 스틱이 16GB, 총 32GB의 RAM이 230달러(257,600원) 이며 나중에 32GB를 추가로 구입할 계획입니다.

디스크

OS, 현재 데이터,  추후 예정하고 있는 ImageNet 같은 거대한 데이터세트에 대한 준비로 느린 HDD 대신 빠른 SSD 디스크를 선택했습니다.

마더 보드

마더보드를 선택할 때 염두에 두었던 점은 PCI Express 레인 수 (최소 2×8)와 2개의 카드의 장착을 감안한 2개의 GTX 1080 Ti를 지원할 수 있냐는 것입니다. 또한 선택한 CPU와 호환되는지 확인하십시오. 130달러(145,600원)에 Asus TUF Z270를 선택했습니다. MSI – X99A SLI PLUS 는 Intel Xeon CPU를 가지고 있을 경우 선택하면 좋습니다.

전원 공급 장치

가장 중요한 점은 CPU와 GPU에 충분한 전력을 공급하고 추가로 100와트를 공급해야 합니다.
인텔 i5 7500 프로세서는 65W를 사용하고 GPU (1080Ti)는 각각 250W가 필요하므로, 750달러(840,000원)의 Deepcool 750W 골드 PSU가 있습니다. 여기에서 “골드”는 전력 효율 , 즉 소비된 전력 중 열량으로 낭비되는 전력량을 나타냅니다 .

케이스

케이스는 마더보드와 동일한 폼 팩터이어야 합니다. 충분한 LED가 있는 것도 보너스입니다.

조립

하드웨어에 대한 많은 경험이 없으면 무언가를 망칠 수 있다는 두려움이 있는 경우 전문업체를 통한 조립이 최선의 선택 일 수 있습니다. 그러나 이것은 (하드웨어 관련 공포 이야기를 많이 가지고 있었음에도 불구하고) 내가 배울 수 없는 좋은 학습 기회였습니다.

첫번째 중요한 단계는 각 구성 요소와 함께 제공된 설치설명서를 읽는 것 입니다. 나는 이 일을 한두번 해 봤기 때문에 특히 중요했습니다.

 

마더 보드에 CPU 설치

이 작업은 케이스에 마더보드를 설치하기 전에 수행됩니다. 프로세서 옆에 끌어 올릴 수 있는 레버가 있습니다. 그런 다음 프로세서를 받침대에 놓습니다. 마지막으로 레버를 내려서 CPU를 고정시킵니다.

그러나 상당히 어려웠습니다. 일단 CPU가 위치에 있으면 레버가 쉽게 내려 가지 않을 것입니다.  레버를 잠글 때 꽤 많은 힘이 들어갔습니다.

 

다음은 CPU 위에 팬을 고정시키는 것입니다. 팬 다리는 마더 보드에 완전히 고정되어야 합니다. 설치 전에 팬 케이블의 위치를 ​​고려하십시오. 내가 가지고 있던 프로세서에는 열전사지가 붙어 있었습니다. 그렇지 않은 경우에는 CPU와 냉각 장치 사이에 붙여 넣으십시오. 또한 팬을 떼면 열전사지를 교체하십시오.

 

케이스에 전원 공급 장치 설치

뒤쪽으로 전원 케이블을 연결합니다.

전원 공급 장치 (PSU)를 마더 보드 앞에 놓고 케이스 뒷면에 전원 케이블을 단단히 고정시킵니다.

 

케이스에 마더 보드 장착

아주 똑 바르게 앞으로 신중하게 위치시키고 안으로 조이십시오. 자석 스크루 드라이버는 진짜로 도움이되었습니다. 그런 다음 전원 케이블과 케이스 단추 및 LED를 연결하십시오.

 

NVMe 디스크 설치

M2 슬롯에 밀어 넣으시고 조이십시오. 아주 쉽습니다.

RAM 설치

메모리는 설치하기가 매우 어려웠습니다. 제대로 잠그기 위해서는 너무 많은 노력이 필요했습니다. 나는 몇 번이나 포기하다가 결국 스틱 중 하나가 클릭되고 다른 하나도 클릭되었습니다.

이 시점에서 컴퓨터를 켜서 제대로 작동하는지 확인했습니다.

GPU 설치

마지막으로 GPU는 여유롭게  미끄러져 장착되었습니다. 나중에 14개의 전원 핀을 꽂았습니다.

 

 

 

소프트웨어 설정

중요한 하드웨어를 설치 했으므로 쉬운 처리만 남았습니다.

이중 부팅에 대한 참고 사항 : Windows를 설치하려는 경우, Windows를 먼저 설치하고 Linux를 먼저 설치하는 것이 좋습니다. Windows를 뒤에 설치하면 Windows가 부팅 파티션을 엉망으로 만들기 때문에 우분투를 다시 설치해야 합니다. Livewire에는 듀얼 부팅에 대한 자세한 기사가 있습니다.

우분투 설치

대부분의 DL 프레임 워크는 Linux에서 먼저 작동하도록 설계되어 이후에 다른 운영체제를 지원합니다. 그래서 나의 기본 리눅스배포판인 우분투를 설치합니다. 오래된 2GB USB 드라이브가 설치디스크가 되어 잘 작동했습니다. UNetbootin (OSX) 나 Rufus (Windows) 로 Linux 설치디스크를 준비 할 수 있습니다. 기본 옵션은 우분투 설치 과정에서 잘 작동했습니다.

글을 쓰는 시점에서 우분투 17.04가 방금 출시되었으므로 이전 버전 (16.04)을 선택했습니다. 단점은 온라인에서 더 잘 설명됩니다.

우분투 서버 또는 데스크탑 : 우분투의 서버 및 데스크탑 에디션은 서버와 함께 설치되지 않는 비주얼 인터페이스 (X라고 함)를 제외하고 거의 동일합니다. 데스크탑을 설치하고 X 자동 시작을 비활성화 하여 컴퓨터가 터미널 모드로 부팅되도록했습니다. 필요한 경우 나중에 startx를 입력하여 시각적 바탕 화면을 시작할 수 있습니다.

최신 정보 얻기

설치를 최신 상태로 만들도록 Jeremy Howard의 훌륭한 GPU-설치 스크립트가 있습니다.

sudo apt-get update

sudo apt-get –assume-yes upgrade

sudo apt-get –assume-yes install tmux build-essential gcc g++ make binutils

sudo apt-get –assume-yes install software-properties-common

sudo apt-get –assume-yes install git

딥러닝 스택

박스에서 딥러닝을 잘 사용하려면 GPU를 사용하는 기술 스택이 필요합니다.

  • GPU 드라이버 – 운영 체제와 그래픽 카드의 통신

  • CUDA – 범용 코드를 GPU에서 실행

  • CuDNN – CUDA 맨위에 딥뉴럴 네트워크 루틴을 제공

  • DL 프레임 워크 – Tensorflow, PyTorch, Theano 등. 스택의 하위 레벨을 추상화하여 보다 쉽게 ​​실행

CUDA 설치

Nvidia 에서 CUDA 를 다운로드 하거나 아래 코드를 실행하십시오.

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

sudo apt-get

sudo apt-get install cuda

CUDA가 설치되면 다음 코드를 PATH 변수에 추가합니다.

cat >> ~/.tmp << ‘EOF’

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\

${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

EOF

source ~/.bashrc

이제 CUDA가 성공적으로 설치되었는지 확인할 수 있습니다.

nvcc –version # Checks CUDA version

nvidia-smi # Info about the detected GPUs

디스플레이 드라이버도 설치되어 있어야합니다. 나 같은 경우  nvidia-smi 명령어로 장치이름에 ERR이 보이기 때문에 최신 Nvidia 드라이버를 설치하여 문제를 해결했습니다.

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/378.13/NVIDIA-Linux-x86_64-378.13.run

sudo sh NVIDIA-Linux-x86_64-375.39.run

sudo reboot

CUDA / NVIDIA 드라이버 제거

어떤 시점에서 드라이버 나 CUDA가 고장난 것 같으면, 다음을 실행하여 다시 시작하는 것이 좋습니다.

sudo apt-get remove –purge nvidia*

sudo apt-get autoremove

sudo reboot

CuDNN

현재 Tensoflow 는 CuDNN 6을 지원하지 않기 때문에 CuDNN 5.1을 설치합니다. CuDNN을 다운로드하려면 (무료) 개발자 계정 에 등록해야 합니다 . 다운로드가 완료되면 다음과 같이 설치하십시오.

tar -xzf cudnn-8.0-linux-x64-v5.1.tgz

cd cuda

sudo cp lib64/* /usr/local/cuda/lib64/

sudo cp include/* /usr/local/cuda/include/

Anaconda

Anaconda는 Python을 위한 훌륭한 패키지 관리자입니다. Python 3.6으로 옮겨서 Anaconda 3 버전을 사용할 것입니다 .

wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh -O “anaconda-install.sh”

bash anaconda-install.sh -b

cat >> ~/.bashrc << ‘EOF’

export PATH=$HOME/anaconda3/bin:${PATH}

EOF

source .bashrc

conda upgrade -y –all

source activate root

Tensorflow

Google 의 인기있는 DL 프레임 워크 입니다.

sudo apt install python3-pip

pip install tensorflow-gpu

Tensorfow 설치 확인 : 스택이 원활하게 실행되도록 하려면 tensorflow MNIST 예제를 실행하는 것이 좋습니다.

git clone https://github.com/tensorflow/tensorflow.git python tensorflow/tensorflow/examples/tutorials/mnist/fully_connected_feed.py

우리는 훈련 중 loss decreasing을 확인해야 합니다.

Step 0: loss = 2.32 (0.139 sec)

Step 100: loss = 2.19 (0.001 sec)

Step 200: loss = 1.87 (0.001 sec)

Keras

Keras 는 훌륭한 하이레벨 신경망 프레임 워크로 절대적인 즐거움을 제공합니다. 설치는 너무 쉽습니다.

pip install keras

PyTorch

PyTorch는 DL 프레임 워크의 세계에서 신인이지만, API는 Lua로 작성된 성공적인 Torch를 모델로합니다. PyTorch는 새롭고 흥미롭고, 대단히 훌륭합니다. 아직 구현해야 할 것이 있습니다. 다음을 실행하여 설치합니다.

conda install pytorch torchvision cuda80 -c soumith

Jupyter notebook

Jupyter는 Python 용 웹 기반 IDE로서 데이터 효율성 작업에 이상적입니다. Anaconda와 함께 설치되었으므로 설정하고 테스트하십시오.

# Create a ~/.jupyter/jupyter_notebook_config.py with settings

jupyter notebook –generate-config

jupyter notebook –port=8888 –NotebookApp.token=” # Start it

이제 우리가 http://localhost:8888Jupyter 를 열면  화면이 보일 것입니다.

부팅시 Jupyter 자동 실행 설정

컴퓨터가 재시작 될 때마다 Notebook을 실행하는 대신 부팅시 자동 시작되도록 설정할 수 있습니다. 우리는 이것을 실행하기 위해 crontab을 사용할 것이고, crontab -e를 실행하여 편집 할 수 있습니다.  그런 다음 crontab 파일의 마지막 줄 다음에 아래의 내용을 추가하십시오.

# Replace ‘path-to-jupyter’ with the actual path to the jupyter

# installation (run ‘which jupyter’ if you don’t know it). Also

# ‘path-to-dir’ should be the dir where your deep learning notebooks

# would reside (I use ~/DL/).

@reboot path-to-jupyter ipython notebook –no-browser –port=8888 –NotebookApp.token=” –notebook-dir path-to-dir &

외부 액세스

나는 개발을 위해 오래된 신뢰할 수있는 Macbook Air를 사용하므로, 홈 네트워크에서 DL 박스에 로그인 할 수 있기를 원합니다.

SSH 키 : 암호 대신 SSH 키를 사용하여 로그인하는 것이 안전합니다. Digital Ocean은 이를 설정하는 방법에 대한 훌륭한 안내서를 제공합니다.

SSH 터널 : 다른 컴퓨터에서 jupyter Notebook에 액세스하려면 권장되는 방법은 Notebook을 전세계에 개방하고 암호로 보호하는 대신 SSH 터널링을 사용하는 것입니다. 우리가 이것을 어떻게 할 수 있는지 보겠습니다.

첫째, SSH 서버가 필요합니다. DL 박스 (서버)에서 다음을 실행하여 설치합니다 :

sudo apt-get install openssh-server

sudo service ssh status

그리고 나서 SSH 터널을 통해 연결하려면 클라이언트에서 다음 스크립트를 실행하십시오.

# Replace user@host with your server user and ip.

ssh -N -f -L localhost:8888:localhost:8888 user@host

이를 테스트하려면 원격 시스템에서 브라우저를 열고 http://localhost:8888를 도 하십시오. Jupyter Notebook이 나타납니다.

네트워크 외부 액세스 설정 : 마지막으로 외부에서 DL 박스에 액세스하려면 다음 세 가지가 필요합니다.

  1. 홈 네트워크 (또는 서비스를 에뮬레이트하기 위한 고정 IP ) – 연결하려는 주소를 알 수 있도록합니다.

  2. DL 박스에 홈 네트워크의 영구 주소를 제공 하는 수동 IP 또는 DHCP 예약

  3. 라우터에서 DL 박스로 포트 포워딩 ( 라우터 가이드 )

네트워크 외부 액세스 설정은 라우터 / 네트워크 설정에 따라 다르므로 자세한 내용은 다루지 않을 것입니다.

벤치 마크

이제는 모든 것을 원활하게 진행할 수 있게되었습니다. 새로 조립한 박스를 AWS P2.xlarge 인스턴스와 비교할 것입니다.이 인스턴스는 지금까지 DL에 사용했던 것입니다. 테스트는 컴퓨터 비전과 관련이 있습니다. AWS P2 인스턴스 GPU (K80), AWS P2 가상 CPU, GTX 1080 Ti 및 Intel I5 7500 CPU에서 모델을 훈련할 시간입니다.

MNIST Multilayer Perceptron

컴퓨터 비전의 “Hello World”입니다. MNIST 데이터베이스는 7만개의 자필 숫자로 구성됩니다. Multilayer Perceptron (MLP)를 사용하는 MNIST 에서 Keras 예제를 실행합니다 . MLP는 convolution이 아닌 완전히 연결된 레이어만 사용한다는 것을 의미합니다. 모델은이 데이터 세트에서 20 개의 에포크에 대해 교육을 받았으며, 98% 이상의 정확도를 제공합니다.

 

모델을 교육할 때 GTX 1080Ti가 AWS P2의 K80보다 2.4배 빠르다는 것을 알 수 있습니다. 이 2장의 카드가 거의 동일한 성능을 가져야하기 때문에 다소 놀랍습니다. AWS에서의 K80의 가상화 또는 언더 클럭킹 때문이라고 생각합니다.

CPU는 GPU보다 9배 느립니다. 나중에 살펴 보겠지만 프로세서에 대한 결과는 매우 좋습니다. 이것은 GPU의 병렬 처리 성능을 완전히 활용하지 못하는 작은 모델 때문입니다.

흥미롭게도 데스크톱 Intel i5-7500은 Amazon에서 가상 CPU보다 2.3배 빠른 속도를 제공합니다 .

VGG Finetuning

Vagg net은 Kaggle의 Dogs 대 Cats 경쟁을 위해 조정될 것 입니다. 이 경쟁에서 우리는 개와 고양이의 그림을 구분할 필요가 있습니다. 같은 수의 배치에 대해 CPU에서 모델을 실행하는 것은 실현 가능하지 않았습니다. 따라서 우리는 GPU에서 390 배치 (1 epoch)와 CPU에서 10 배치를 분석합니다. 사용된 코드는 github에 있습니다.

 

 

1080TI는 AWS GPU (K80)보다 5.5배 빠릅니다. CPU 성능 차이는 이전 실험과 거의 같습니다 (i5는 2.6 배 빠름). 그러나 이 작업을 위해 CPU를 사용하는 것은 절대적으로 비실용적입니다. CPU가 16개의 convolutional layer와 2 개의 semi-wide (4096) 완전 연결 레이어를 포함하는 이 대형 모델에서 ~ 200 배 더 많은 시간을 소비했기 때문입니다.

Wasserstein GAN

GAN (Generic adversarial network)은 모델을 훈련시켜 이미지를 생성하는 방법입니다. GAN은 두 가지 네트워크, 즉 더 좋고 더 좋은 이미지를 만드는 법을 배우는 Generator와 Generator가 어떤 이미지가 실제로 있고 어떤 것이 꿈인지를 판별하는 Discriminator를 사용하여 이를 달성합니다.

Wasserstein GAN은 원래 GAN을 개선한 것입니다. 우리는 PyTorch 구현을 사용합니다 . 이것은 WGAN 작성자가 작성한 것과 매우 유사합니다 . 모델은 50 단계에 걸쳐 교육을 받았으며 GAN의 경우에 종종 손실이 발생합니다. CPU는 고려되지 않습니다.

GTX 1080 Ti 는 이전 결과와 동일한 AWS P2 K80 보다 5.5 배 빠릅니다 .

Style Transfer

마지막 벤치 마크는 Tensorflow ( 코드 사용 가능 ) 에서 구현된 원래 Style Transfer paper (Gatys 외 ) 입니다. Style Transfer는 한 이미지의 스타일 (예 : 그림)과 다른 이미지의 콘텐츠를 결합하는 기술입니다. Style Transfer 방법에 대한 자세한 내용은 이 문서를 확인하십시오 .

 

GTX 1080 Ti는 AWS K80보다 4.3 배 뛰어납니다. 이번에는 CPU가 그래픽카드보다 30-50배 더 느립니다. 감속은 VGG Finetuning 작업보다 적지만 MNIST Perceptron 실험 이상입니다. 이 모델은 주로 VGG 네트워크의 초기 레이어를 사용하며 GPU를 완벽하게 활용하기에는 너무 얕습니다.

DL 박스는 현명한 투자였습니까? 어둠 속에서 빛나는 LED를 보고 조용한 윙윙 거리는 소리를 들으면 아름답습니다.

출처 ; https://blog.slavv.com/the-1700-great-deep-learning-box-assembly-setup-and-benchmarks-148c5ebe6415