从零开始机器学习-1 TensorFlow的环境搭建
由 沈庆阳 所有,转载请与作者取得联系!
什么是机器学习
机器学习,顾名思义,让机器去实现人类的学习行为。传统的编程中,如果需要解决一个问题,需要程序员来设计如何解决这个问题。而通过机器学习,我们可以使用各种机器学习的方法,使计算机程序具有不断获取新的知识的能力,从而适应解决各种问题。
而深度学习是机器学习中十分火热的一个话题,通过搭建神经网络的模型来实现机器学习。现阶段,有如Torch、Caffee和TensorFlow等深度学习的开源框架。
什么是Tensorflow
TensorFlow是Google的开源深度学习框架。其通过数据流图(Data Flow Graph)来描述张量(Tensor)十分直观,因此该深度学习框架也就命名为了TensorFlow。
关于TensorFlow的细节介绍和具体教程,参考官网:https://www.tensorflow.org
环境准备
在继续进行学习之前,需要做如下准备
硬件:台式机或笔记本
操作系统:Windows、Linux或MacOS
编程环境:Python
对于硬件要求,由于深度学习包含大量的学习过程,这个过程将会消耗大量的计算机硬件资源。如果你有一台强劲的计算机,那么最好不过了。如果你还没有达标的硬件环境,就只能忍受漫长的训练过程了。
对于拥有高配置英伟达(Nvidia)显卡的小伙伴来说,使用英伟达GPU推出的CUDA加速和cuDNN的深度学习工具可以省去大量的等待时间。以笔者跑过的一个Neural-Style的TensorFlow程序来计算,使用Intel Core i7-5930K CPU消耗了将近90分钟,而使用GeForce GTX Titan X GPU则只需要不到3分钟的时间。使用CUDA加速的效果由此可见一斑。
对于操作系统来说,我比较推荐使用Linux的系统,在这里笔者使用的是Ubuntu 16.4 LTS发行版。
最后,如果实在满足不了硬件的标准且不想忍受漫长的训练过程的话,还可以在网上购买AWS、阿里和谷歌的GPU服务器等。
环境搭建
Github上大部分的源码都是在Linux的环境中运行的。因此使用Linux系统作为深度学习的首选环境。鉴于大部分用户使用的是Windows的电脑,如果仅仅通过虚拟机来安装Linux的系统的话,则会是计算机性能大打折扣,进行深度学习训练的时候速度很慢。并且在虚拟机中想要安装英伟达的CUDA时会十分困难。因此保留Windows,安装Windows+Linux的双系统则是更好的选择。
至于如何安装双系统,此处不再赘述。
安装Python和Pip
对于Ubuntu等Linux的发型版,Python是在安装操作系统的时候就安装好了的。对于没有安装Python的时候,可以使用如下命令安装Python。
sudo apt-get install python
使用以上命令,默认安装的是Python2.7的版本,如果需要安装Python3的版本的话则需要使用如下命令
sudo apt-get install python3
pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具。使用Pip可以快速安装Python的各种包。对于不同版本的Python,有着不同的pip工具。如安装Python3上的TensorFlow则是使用的pip3工具。
pip的安装也十分简单,安装Python2.7版本的pip则使用如下命令
sudo apt-get install python-pip
如果对应的是Python3版本的pip则使用如下命令
sudo apt-get install python3-pip
安装Nvidia的CUDA和cuDNN工具(可选)
如果你想要安装GPU版本的TensorFlow的话,就必须安装CUDA和cuDNN工具。
首先登录Nvidia官网,下载CUDA工具(需要注册账号)
https://developer.nvidia.com/cuda-zone
点击Download Now进入下载页面
进入下载页面,截止撰写本篇文章的时间,默认的下载CUDA9.1Toolkit。目前Pip上的TensorFlowGPU包要求的是CUDA8.0和cuDNN6.0,因此我们选择网页最下方的Legacy Releases下载8.0的版本。
选择 Linux->x86_64->Ubuntu->16.04->deb(local)
下载CUDA Toolkit 8.0
下载完成之后,使用如下命令进行安装
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
然后来到cuDNN的下载页面下载cuDNN 6.0工具,同样使用dpkg命令进行安装。
cuDNN下载页面:https://developer.nvidia.com/cudnn
最后,配置CUDA 8.0和cuDNN6.0的环境变量。
使用vim或nano等文本编辑软件打开bashrc
sudo vim ~/.bashrc
在bashrc文件末尾加入环境变量
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/lib
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda-8.0/bin
使用pip命令安装TensorFlow-GPU(或安装TensorFlow-CPU)
使用如下命令安装GPU版本的TensorFlow
Python2版本的Pip命令:
sudo pip install tensorflow-gpu
Python3版本的Pip命令
sudo pip3 install tensorflow-gpu
安装完毕之后会有如下提示
Installing collected packages: tensorflow-gpu
Successfully installed tensorflow-gpu-1.4.1
此时我们来到python中进行测试
jack@jack-QTJ5:~$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.4.1'
上述为控制台的输出,我们输入了import tensorflow和查询tensorflow版本的命令。至此TensorFlow安装已经完成。
下载TensorFlow训练的模型
Github中的https://github.com/tensorflow/models包含着众多已经使用Tensorflow训练好的模型。我们使用git来克隆下来这个仓库,并供下一节课使用这些模型。
新建一个名为tensorflow的文件夹,使用如下命令克隆上述的仓库
git clone https://github.com/tensorflow/models
克隆完成之后,在你的当前工作目录中会出现一个名为models的文件夹。
下一节中,我们将实现通过摄像头来捕捉画面,并使用TensorFlow的Object Detection API来实现常用物体的动态识别。
觉得写的不错的朋友可以点一个 喜欢♥ ~
谢谢你的支持!