中国区的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~