搭建Tensorflow虚拟机学习环境

大家好,我是帅气小伙,我要开始探索人工智能了!其实也不是难的事情,写这篇文章的目的是,记录自己在安装Tensorflow的过程,方便以后查看;帮助广大朋友搭建学习环境。如果大家能看到这篇文章,就证明我已经成功地搭建了学习环境,安装步骤是可靠的。

前言

1.我为什么要学习Tensorflow?

因为我想学Linux,学python,学docker,学git,学tensorflow,就是这么贪心。

2.如何克服在Linux上的水土不服?

我自己本身沉浸在windows的图形界面不能自拔,但是换去了Linux的命令行操作模式,显然会感到不舒服。

首先我们必须在安装虚拟机的时候,装纯英文版。一切畏惧命令行的根本原因在于,你害怕记英语单词。

然后我们必须强迫自己去用命令行,一开始不懂命令行没关系,多去查就知道了,在搜索时前缀 “Linux用命令行实现XXXX”,这样搜到的基本是命令行的了。

最后就是多看多学多练了,花了时间就能熟练

3.如何去入门Tensorflow?

其实如果你想学Tensorflow,关键在于弄懂 

什么是tensor(张量);什么是flow(流)。搞清楚深度学习和Tensorflow的关系。我还是觉得不要拘泥于那些python代码。

学习资源我推荐:

tensorflow中文入门教程-含视频

tensorflow入门视频教程-含互动

tensorflow中文社区

准备

64位Ubuntu16.04LTS 虚拟机 

虚拟机设置

4G内存(最低了,因为人工智能的需要大量的内存,这点内存仅够学习使用)

65G硬盘(越多越好,因为我们需要下载大量的数据集去训练模型)

其他没什么可以说的了,开搞!

安装Tensorflow

1.安装git

sudo apt-get install git      -----安装

git --version                      -----验证

2.安装Bazel

官方教程----很官方

a.JDK8的安装(必须的)

sudo add-apt-repository ppa:webupd8team/java  ----添加仓库

sudo apt-get update                                              ----更新软件列表

sudo apt-get install oracle-java8-installer              ----正式安装jdk8

java -version                                                          ----验证安装

b.Bazel的安装

 echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list                                                 

curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -     

sudo apt-get update && sudo apt-get install bazel

bazel version

3.Tensorflow的源码安装

官方教程

包依赖检查 (全部复制进去就可以了)

sudo apt-get update&&sudo apt-get install -y \       

build-essential \       

curl \       

libcurl3-dev \       

git \       

libfreetype6-dev \       

libpng12-dev \       

libzmq3-dev \       

pkg-config \       

python-dev \       

python-numpy \       

python-pip \       

software-properties-common \       

swig \       

zip \       

zlib1g-dev

Tensorflow 真正的安装

git clone --recurse-submodules https://github.com/tensorflow/serving   ----拉取源代码

cd tensorflow                                                                                           

./configure                                                                                               ----配置tensorflow

cd..

执行configure的时候会问你问题

Please specify the location of python. [Default is /usr/bin/python]:

/usr/bin/python                            -

Please specify optimization flags to use during compilation [Default is -march=native]:

-march=native

Do you wish to use jemalloc as the malloc implementation? [Y/n]

y

Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]

y

Do you wish to build TensorFlow with Hadoop File System support? [y/N]

y

Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N]

y

Do you wish to build TensorFlow with OpenCL support? [y/N] 

n(虚拟机就不用OpenCL了)

Do you wish to build TensorFlow with CUDA support? [y/N]

n(虚拟机没有CUDA,就不用这个了)

配置成功后即可

4.安装Tensorflow  python API

sudo apt-get install python-pip python-dev                     

sudo pip install tensorflow

测试

恭喜你!你已经成功安装了Tensorflow了!

运行Tensorflow源码中的model

这是教程中的入门案例,也就是tensorflow的hello,world。初次运行比较慢,需要下载数据集(20M左右)

cd serving/tf_models/tutorials/image/mnist

python convolutional.py

模型正在训练

如果你想运行别的model可以参考

谷歌开源的所有模型

每个模型对应一个README.md,然后都有对应的Bazel命令,跟着玩就可以了,注意的时,大多数模型需要下载数据集(较大),在这里我就不弄了。

Python IDE搭建

我是java开发者。因此我选择eclipse+python插件

Eclipse安装

(我选择了jee版本的,因为我的学习目的是开发一个web调用tensorflow提供的RPC服务)

cd Downloads                                                     ----把文件放在Downloads文件夹吧

sudo wget sudo wget http://eclipse.stu.edu.tw/technology/epp/downloads/release/neon/2/eclipse-jee-neon-2-linux-gtk-x86_64.tar.gz

tar -zxvf eclipse-jee-neon-2-linux-gtk-x86_64.tar.gz

cd eclipse

sudo ./eclipse

PyDev插件安装

总结

经过一个星期的学习,我的感受是越来越觉得代码只是一种表达方式,重要的是代码背后的思想。在学习Tensorflow的过程中,我才渐渐发现英文能力的重要性,自此,我已经开始强迫自己处在英文包围的环境下了,相信这能够让我适应英文。

我觉得现在处于大二的同学是最适合学Tensorflow的,因为课程刚好学完高数,线性代数,正常情况过了四级,再学3个月Tensorflow考六级,稳!但是前提是看纯英文的文档和教程。

自学的动机源于恐慌,而又止于恐慌。在学习的过程中最重要的我觉得是要克服内心的孤独。这种内心的孤独不仅是你因为专注而缺乏交际带来的,更多的是你渴望获得外界的的关注和承认。也就是说缺乏在自学过程中的自我评估和激励。再说到编程,这个行业很特别,别人很难从外界去纠正你的错误,最好的导师只能够告诉你错误可能的原因和努力的方向,大部分是靠自己的摸索和探寻。所以我总是和我的朋友说,程序员天天都在Debug。其实这就是在成长吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容