tensorflow框架介绍和安装

tensorflow的背景介绍

大家好,我博客的第一篇干货就打算献给tensorflow框架,下面我会先简单的介绍一下tensorflow框架的特点,并介绍安装方法,分享一些我用过的机器学习/tensorflow框架学习资料.
不知道大家第一次听说tensorflow有什么感受,我们从字面意思上来讲的话,tensorflow就是张良的流动.那么问题是张量是什么,它又在什么地方流动呢?实际上我觉得要入门tensorflow最重要的就是先了解tensorflow的图的概念.图实际上可以想象成一个复杂的管线系统,这个管线系统有很多节点的机器对流量进行管制.我们的张量就像水流一样在这样的系统中流动.如果从tensorflow的系统架构来讲的话,自底向上的设备层,网络层,数据操作层,图计算曾,API层,应用层中最重要的就是这个图计算层,这也从另一个方向说明了tensorflow是一个符号主义的库,它是将图的定义和运行完全分开的,在入门学习的时候我们主要的问题也是由于这个”符号语言”导致的.不过只需要脑海中注意一点,就是将要明确符号计算的要点就是一般先定义各种变量,然后建立一个数据流图,在数据流图中规定各个变量之间的的计算关系,最后再对数据流图进行编译.在了解了上面这些内容之后,我们才初次使用tensorflow的时候就不会惊讶于为什么要创建一个Session作为操作运行和求值的环境了.在后面的文章中我还会给大家从tensorboard的可视化界面中给大家更直观的欣赏张量在图中流动的过程.更多关于tensorflow的故事可以在tensorflow的官方WiKi上找到,大家感兴趣的可以去了解一下.下面先让我们的机器运行起tensorflow吧!

tensorflow的安装

我的机器是Ubuntu16.04 LSM,因此这里的介绍主要以linux机器为主
首先了解你想要按照的是哪种tensorflow,这主要是基于当你对于自己机器显卡的考量.像作者的机器显卡一般,所以果断选择安装tensorflow的CPU-Only版,但是需要注意的是如果你安装的是这个版本的话,那么可能一些专用于GPU的API就跑不起来了,图形运算的速度也会相应的慢一些.
首先在安装之前考虑到隔离系统的环境,所以果断安装Virtual Env

1
2
$ sudo apt-get install python-pip python-dev python-virtualenv # for Python 2.7
$ sudo apt-get install python3-pip python3-dev python-virtualenv # for Python 3.n

然后先创建一个我们用来安装的虚拟环境

1
2
$ virtualenv --system-site-packages targetDirectory # for Python 2.7
$ virtualenv --system-site-packages -p python3 targetDirectory # for Python 3.n

targetDirectory 用于指定 Virtualenv 树的顶层目录。我们的说明中假定 targetDirectory 为 ~/tensorflow,但您可以选择任何目录。
激活Virtual Env环境

1
2
$ source ~/tensorflow/bin/activate # bash, sh, ksh, or zsh
$ source ~/tensorflow/bin/activate.csh # csh or tcsh

然后请确保您安装的pip版本高于要求

1
(tensorflow)$ easy_install -U pip

接着果断使用pip(python2),pip3(python3)进行安装,不过由于网络问题pip安装的速度很感人,这里我推荐您将系统的源换到清华镜像等国内源,或者在命令中加入 -U –timeout 1000 慢慢等待~

1
2
3
4
(tensorflow)$ pip install --upgrade tensorflow      # for Python 2.7
(tensorflow)$ pip3 install --upgrade tensorflow # for Python 3.n
(tensorflow)$ pip install --upgrade tensorflow-gpu # for Python 2.7 and GPU
(tensorflow)$ pip3 install --upgrade tensorflow-gpu # for Python 3.n and GPU

ok,现在应该已经安装好了吧?让我们测试一下,在Virtual Env中打开python试一下可不可以Import吧~
对了,对于mac用户来讲,安装大同小异.win用户的话安装一个anaconda吧,conda的包管理不会让您失望的!
主体已经安装好了,接下来大家需要安装一些依赖模块:
numpy(处理和存储大型矩阵的科学计算包,MATLAB不服来战)

1
pip install numpy --upgrade

matplotlib(绘图库)

1
pip install matplotlib --upgrade

jupyter(交互式python编辑,后面的博客中还会介绍如何部署可以远程访问的jupyter)

1
pip install jupyter  --upgrade

scikit-image(一般用于图像预处理)

1
pip install scikit-image --upgrade

keras(被添加到tensorflow核心中的高级别框架,站在巨人的键盘上变成会不会更爽呢?)

1
pip install keras --upgrade

tflearn(不是tfboys出品但依然很不错的一个第三方框架)

1
pip install git+https://github.com/tflearn/tflearn.git

一些我用过的学习资料

首先向大家说明的是现在人工智能领域火起来以后,市面上有很多人工智能方面的书籍不过这些书籍良莠不齐,还是希望大家可以多多发现,找到适合自己的学习路径和方法,有问题也可以和我一起讨论哦,我虽然是一名学习物理的学生,但是我的研究方法是ML~
好了闲话少讲,资料接好啦
1.Tensorflow技术解析和实战这本书是我入门tensorflow框架的伴侣,由浅入深,实战部分也加了一些心意,比市面上那些万年mnist的书好了不少,就是要注意看书应当和源代码学习结合起来,多上Github上star一些项目好好学习一哈吧!
2.吴恩达在coursera上的ML课程,代码用matlab编写,注重介绍方法和原理的核心部分,理论上不是很强但是是一个入门ML的好课程.大家想要这门课程的源代码的话,可以联系我的邮箱.
3.李航的统计学习方法,主要是介绍机器学习经典算法的统计学原理
4.台大林轩田的机器学习基石课程,这门课主要讲的是技术,重点也不是特别的理论化,搭配统计学习方法食用更佳
5.CS231这门课早有耳闻,不过我没时间刷,大家可以一起约学习一波
如果上面的课程在coursera上访问比较慢的话可以尝试更改host,或者看我后面的博文,如何科学的架梯子~
谢谢大家的耐心阅读,有啥问题评论区见~