中國區的GPU機器終於正式上線了,這不是最爲重要的,GPU的機器各家基本都有,最爲重要的是Azure上這款GPU機器直接配備了NIVIDA最新一代基於Volta架構的Tesla V100的GPU卡, 做爲全球第一款在AI training上超過100 TFLOPS的性能怪獸,他到底有多強悍呢?python
咱們來和他的上一代基於Pascal架構的P100來作一個簡單對比,你們能夠看到V100首次配備Tensor Cores,每一個tensor core都會操做一個4X4的矩陣提高浮點運算的效能和吞吐量;在CUDA cores上面,V100提供5120和CUDA cores,P100是3584:linux
在實際的Deep Learning訓練中,V100的性能大約是P100的3倍:git
在Deep learning的Inference測試中,V100大約是CPU的47倍,P100的3倍:github
對於AI開發人員來講,更短的AI訓練時間,更好的性價比將會幫助他們加速應用的開發和創新,在Azure上目前提供4種不一樣規格的NC v3 GPU機器,以下表所示,另外,Azure上的GPU VM按照分鐘計費,能夠在訓練的時候打開VM,訓練完成後關閉VM節約成本:算法
以風格遷移(style transfer)爲例,接下來的部分主要爲你們介紹如何搭建深度學習環境進行深度神經網絡的訓練和測試。測試中使用到的軟件,框架,操做系統爲Tensorflow 1.8,CUDA 9.0 ,cuDNN 7.1.4, Ubuntu 1604,Anaconda 5.2以及VGG網絡模型。ubuntu
# 更新本地CUDA的key api
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub 網絡
#添加CUDA的repo到本地架構
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
$ sudo apt-get update框架
# 安裝NIVIDIA驅動,CUDA driver,並重啓機器
$ sudo apt-get -y --no-install-recommends install cuda-drivers
$ sudo reboot
# 安裝CUDA 9.0,不要安裝9.1或者9.2
$ sudo apt-get -y install cuda-toolkit-9-0
安裝cuDNN必須註冊nvidia developer才能夠下載,在以下地址註冊並下載:
https://developer.nvidia.com/cudnn
在本測試中,請選擇v7.1.4 for CUDA 9.0下載:
# 安裝cuDNN運行時和開發庫:
sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.3.11-1+cuda9.0_amd64.deb
https://www.anaconda.com/download/#linux
wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
conda create -n tensorflow
source activate tensorflow
8 .安裝Tensorflow,咱們固然時須要安裝GPU版本的tensorflow,當前的版本使用1.8.0:
pip install --ignore-installed --upgrade
https://download.tensorflow.google.cn/linux/gpu/tensorflow_gpu-1.8.0-cp36-cp36m-linux_x86_64.whl
在某些狀況下,衆所周知的緣由,你的下載可能失敗,那麼能夠把tensorflow的package下載到本地安裝,安裝完成後進行簡單的測試,若是你看到相似於以下的提示,那麼你的安裝就是沒問題的:
注意:爲了方便你們照着這個教程愉快的玩耍,我把這個文章倆面須要的package都已經下載而且upload到了Azure的storage裏面,直接下載便可,具體方法好比以train2014.zip爲例,直接wget便可:
https://deepstorage.blob.core.chinacloudapi.cn/deeplearning/train2014.zip
其餘相關的package以下,能夠在安裝的時候根據須要下載:
什麼是風格遷移呢?簡單來講就是咱們經過CNN(卷積神經網絡)抽取一個你想作style圖像的風格,讓後將這種風格應用到你的原始圖像,最後產生目標風格,這種方式咱們叫風格遷移,類比一下你的手機裏面的各類美顏,濾鏡等等的效果。
若是想更多的瞭解背後的原理,公式,算法,請移步這裏:
https://arxiv.org/pdf/1508.06576.pdf
https://cs.stanford.edu/people/jcjohns/eccv16/
# 首先從Github上克隆Fast Style Transfer,我作了一些小修改,請直接從以下repo下載
$ git clone https://github.com/kingliantop/fast-style-transfer.git
mkdir data
cd data
wget https://deepstorage.blob.core.chinacloudapi.cn/deeplearning/imagenet-vgg-verydeep-19.mat
mkdir bin
wget https://deepstorage.blob.core.chinacloudapi.cn/deeplearning/train2014.zip
unzip train2014.zip
其中train2014大約12.5GB,VGG模型大約550MB,我都放在了中國,你們直接run setup.ssh便可。
執行以下程序開始訓練,整個訓練過程大約1個半小時,比起一年之前在K80上大約5到6小時,快了不少:
python style.py --style examples/style/la_muse.jpg --train-path data/train2014 --checkpoint-dir checkpoint --test examples/content/chicago.jpg --test-dir test --content-weight 1.5e1 --checkpoint-iterations 1000 --batch-size 20
python evaluate.py --checkpoint checkpoint --in-path ./demo.jpeg --out-path ./demo_la_muse.jpeg
我對多種不一樣風格的圖片進行了遷移,你們能夠看到原始圖片通過風格遷移之後就變成了跟風格圖片接近的風格,隊中不一樣風格的對好比下:
原始圖片 |
遷移風格 |
風格遷移後結果 |
遷移的風格圖片以下:
原始視頻不夠魔幻,遷移後的風格以下:
或者更爲魔幻一點:)
若是你們感興趣,能夠在Azure上使用NC系列VM快速進行AI相關的開發測試,Enjoy~