本文将围绕几个步骤来讲。

因为本人是MSP,微软送了150刀的额度给我随便使用。这篇文章是要讲将Azure用作云计算平台,对于我来说,我是做机器学习的,那么Azure就要有机器学习的平台。

本文的目的是,在Azure上搭建虚拟机,安装TensorFlow,在本地通过XShell进行远程连接。

===================================

1,在Azure上搭虚拟机

首先我们打开Azure。

【充分利用你的Azure】将Azure用作云计算平台(1)

之后点击右上角的Terminal,选择Bash,进行最初的准备。此时将会分配一个新的存储空间给你使用。

【充分利用你的Azure】将Azure用作云计算平台(1)

 

输入:

sudo pip install azure-cli

之后:

az login

接下来我们新建一个资源组用作管理,资源组选择EastUS。

az group create -n tensorflow -l EastUS

这个时候我们可能需要一个SSH密钥对,这个我们待会再说。

接下来我们新建一个虚拟机,选择左边的侧栏:

【充分利用你的Azure】将Azure用作云计算平台(1)

【充分利用你的Azure】将Azure用作云计算平台(1)

选择Ubuntu 16.04 LTS即可,之后按照自己需要的进行定制。

在第一步的时候可能需要你选择用户名或者SSH,此时建议先使用用户名,之后再禁用。

一切都配置完成之后,启动虚拟机:

az vm start -g tensorflow -n tensorflow

使用用户名密码登陆。


接下来我们安装CUDA8 + CuDNN 5.1. TensorFlow官方尚未支持CUDA9,所以我们暂时使用CUDA8.

wget https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
sudo apt-get update
sudo apt-get install -y cuda
rm cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb

之后我们可以使用

nvidia-smi

 查看GPU状态。

 

下一步安装CuDNN 5.1.

wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz
sudo ldconfig

最后添加进环境变量:

export CUDA_HOME=/usr/local/cuda-8.0
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:/usr/local/cuda/lib64:${LD_LIBRARY_PATH}

因为我喜欢用Python3,所以我要另外装上Python3和对应的pip。

sudo apt-get install python3-setuptools
sudo easy_install3 pip

这样,你输入Python3,pip3会启动Python3,而输入python,pip会启动Python2.

 

之后安装TensorFlow r1.2(因为1.3版本需要CuDNN 6+)

sudo apt-get install -y  python3-dev
sudo pip install tensorflow-gpu==1.2

TensorFlow的安装完成。输入下列语句进行测试:

>>> import tensorflow as tf
>>> session = tf.Session()

当然,你可以随时离开虚拟机:

az vm deallocate -g tensorflow -n tensorflow

 

参考资料:

https://www.lutzroeder.com/blog/2016-12-27-tensorflow-azure/http://blog.csdn.net/silent56_th/article/details/77587792

http://blog.csdn.net/silent56_th/article/details/77587792

https://gist.github.com/diegopacheco/576ff74c2013ee79ea8060945b1e9a53