TensorFlow 实验环境搭建

来源:互联网 发布:实木床 品牌 知乎 编辑:程序博客网 时间:2024/05/22 07:47

TensorFlow 实验环境搭建

一、实验说明

本实验课提供一个TensorFlow的环境,让Deep Learning的新手通过动手实践对TensorFlow有所了解。

Deep Learning的学习需要很多理论基础,必须花足够的时间学习原理与算法,请先阅读课程中推荐的理论文章。实验课是对理论学习的补充,将理论写成代码,将数据跑出结果,实践的过程可以更好的融会贯通理论知识。

教程内容部分来自官方文档翻译。

本节实验将会学习到的知识点包括:

  1. Python基础知识
  2. 设置virtualenv环境
  3. 深度学习基本概念
  4. TensorFlow系统安装部署

1. 推荐阅读

TensorFlow 系统来源及原理推荐阅读:

  • Jeff Dean Large-Scale Deep Learning for Intelligent Computer Systems PPT
  • TensorFlow 白皮书

2. 环境介绍

本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:

  1. LX终端(LXTerminal): Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令
  2. Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的HTML/JS页面即可
  3. GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器

3. 环境使用

使用GVim编辑器输入实验所需的代码及文件,使用LX终端(LXTerminal)运行所需命令进行操作。

实验报告可以在“我的主页”中查看,其中含有每次实验的截图及笔记,实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。

二、TensorFlow 简介

Google曾经开发过两代Deep learning的系统,其中第一代称为DistBelief,第二代就是TensorFlow。由于DisBelief虽然具备很好的扩展性但一些研究场景中使用起来不够灵活,所以Google设计研发了TensorFlow,比第一代系统更快更灵活,更容易适应新的研究需求。这两套系统都应用在Google的大量的技术产品中,例如语音识别,图像识别及翻译等。

TensorFlow系统的核心是C++编写的,并且提供了C++和Python两种Frontend接口。我们后续实验中主要使用Python语言。

三、TensorFlow 安装

TensorFlow安装非常简单,官方安装文档提供了几种安装选择,我们选择使用Python Virtualenv环境安装。安装步骤为了适应实验楼所在的网络环境,进行了少量修改。

3.1 安装依赖的软件包

首先打开桌面上的Xfce终端,在终端中执行后续命令。

为了构建virtualenv环境,我们先安装必要的组件:

$ sudo apt-get update$ sudo apt-get install python-pip python-dev python-virtualenv

3.2 设置Virtualenv环境

将tensorflow安装到/home/shiyanlou/tensorflow,我们需要为这个目录设置virtualenv环境:

$ virtualenv --system-site-packages /home/shiyanlou/tensorflow

进入到/home/shiyanlou/tensorflow目录并激活virtualenv环境:

$ cd /home/shiyanlou/tensorflow$ source bin/activate# 进入到virtualenv的环境(tensorflow) $

如果需要退出virtualenv的话,只需要执行命令deactive即可。

3.3 安装TensorFlow

由于网络原因,TensorFlow安装包的下载会很慢,所以我们将0.5.0版本安装包拷贝到了阿里云上,仅用于内部实验教学。

使用pip安装TensorFlow:

# 升级依赖的包six到1.10.0版本(tensorflow) $ pip install --upgrade http://labfile.oss.aliyuncs.com/courses/470/six-1.10.0-py2.py3-none-any.whl# 安装tensorflow(tensorflow) $ pip install --upgrade http://labfile.oss.aliyuncs.com/courses/470/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

安装过程中会首先安装几个依赖包,例如numpysix等。

上述命令完成并没有报错时,说明TensorFlow已经安装好了。

四、测试

我们通过一些简单的程序来对TensorFlow进行测试,你也可以根据官网的教程进行任何操作。

首先启动python,然后import tensorflow就可以进行测试,记住要在virtualenv环境下执行才可以:

(tensorflow) $ python>>> import tensorflow as tf>>> hello = tf.constant('Hello, TensorFlow!')>>> sess = tf.Session()>>> print sess.run(hello)Hello, TensorFlow!>>> a = tf.constant(10)>>> b = tf.constant(32)>>> print sess.run(a+b)42>>> sess.close()>>> quit()

上面的操作描述了两个最简单的计算示例,其中tf.constant用来生成各种类型的TensorFlow常量,Session对象用来加载图并进行计算,在创建Session对象时会输出一些信息,当运算执行完可以调用close()来释放资源。

每个语句都能通过阅读TensorFlow Python 文档学习。

4.1 运行简单的TensorFlow程序

TensorFlow官网给出了一个简单的程序,是一个简单的线性回归模型的拟合。利用梯度下降法来进行最优化。程序内容如下。

程序中x_data = np.float32(np.random.rand(2,100))生成的是一个2x100的矩阵,所以下面的y_data就可以很容易理解,它的含义其实就是一个1x2的矩阵乘以一个2x100的矩阵,按照简单的矩阵乘法的意义给出了1x100的矩阵,也可以理解成一个行向量。

此外,程序中定义很多tf.Variable,在TensorFlow使用的变量类型可以直接作为各个模型的输入和输出。

import tensorflow as tfimport numpy as np# Make 100 phony data points in NumPy.x_data = np.float32(np.random.rand(2, 100)) # Random input# 对于随机X按照需要的方法生成y,注意np.dot是矩阵乘法y_data = np.dot([0.100, 0.200], x_data) + 0.300# 下面就是简单的构建线性模型# Construct a linear model.b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(W, x_data) + b# 拟合的过程,使用的是梯度下降方法# Minimize the squared errors.loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# For initializing the variables.init = tf.initialize_all_variables()# Launch the graphsess = tf.Session()sess.run(init)# Fit the plane.for step in xrange(0, 201):    sess.run(train)    if step % 20 == 0:        print step, sess.run(W), sess.run(b)# Learns best fit is W: [[0.100  0.200]], b: [0.300]

使用gedit或gvim将上述程序内容输入到文件/home/shiyanlou/tensorflow/test.py,保存并执行下面的命令:

(tensorflow) $ python test.py

运行上面的程序可以得到下图的输出信息:

此处输入图片的描述

五、下一步

现在你已经有了一个TensorFlow实验环境,下一步可以通过通过TensorFlow官网官网丰富的教程进行学习。官网资料非常丰富,具备基本的英语基础就可以学习。

建议先学习下面两个教程:

  • MNIST新手教程
  • TensorFlow基本用法

六、参考资料

  1. TensorFlow官网
  2. TensorFlow源代码
  3. Jeff Dean Large-Scale Deep Learning for Intelligent Computer Systems PPT

七、后续实验

由于TensorFlow官方教程是最权威准确的,并且已经有人开始进行翻译。在实验楼我就不重复制作轮子了。建议大家可以充分利用实验楼本节提供的实验环境,结合官方教程,边学习边逐步实践TensorFlow教程,如果有任何疑问,欢迎在问答页面提出,期待与大家的交流。

0 0
原创粉丝点击