一.背景
本人学习Tensorflow是为了完成毕业设计的工作,之前并没有用过其他的深度学习平台,Tensorflow作为当前很流行的一个平台,无论是教学文档,还是使用其开发的工程,这些资源都是很丰富的,所以很适合新手来进行入门。Tensorflow的具体背景我就不过多的介绍了,网上有很多的资源。另外我写这一系列博客的目的是激励自己吧,逼着自己学得更透彻一点,毕竟会用和能熟悉的写成教程还是两码事,希望自己能坚持下去。
2.Tensorflow安装
我使用的是自己的笔记本电脑,配置是i7-6700hq + GTX1066,系统是Ubuntu 16.04。Tensorflow相对来说还是比较容易安装的,其中安装CUDA和Cudnn比较费劲,但网上的教程也很多,去搜一下就可以了。我是使用Anaconda的方式安装的Tensorflow,因为我之前使用的都是python3.5,但是我要跑得tensorflow项目都是基于2.7的版本,为了防止两种python版本冲突之类的事情发生,我选择使用anaconda。anaconda用来管理python包是一种很强大的存在,推荐大家使用。之后的安装就很简单的,激活一个环境,使用pip安装即可。
3.Tensorflow基本使用
Tensorflow是通过如下方式进行计算的:
- 使用图(graph)来表示计算任务
- 在会话(Session)的上下文(context)中执行图
- 使用tensor表示数据
- 通过变量(Variable)维护状态
- 使用feed和fetch可以为任何操作赋值或者从其中获取数据
这里就引用官方文档的了:
TensorFlow是一个编程系统,使用图来表示计算任务。图中的节点被称之为op(operation)。每一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。每个Tensor是一个类型化的多维数组。例如,你可以将一小组图像集表示为一个四维浮点数组,着四个维度分别是[batch, height, width, channels]。
一个TensorFlow图描述了计算的过程。为了进行计算,图必须在会话里被启动。会话将图的op分发到诸如cpu或gpu之类的设备上,同时提供执行op的方法。这些方法执行后,将产生的Tensor返回。在Python语言中,返回的tensor是numpy ndarray对象。
计算图
TensorFlow程序通常被组织成一个构建阶段和一个执行阶段。在构建阶段,op的执行步骤被描述成一个图。在执行阶段,使用会话执行图中的op。
例如,通常在构建阶段创建一个图来表示和训练神经网络,然后在执行阶段反复执行图中的训练op。
通常我们在构建阶段搭建神经网络框架,在执行阶段,通过迭代来训练参数。
例子:
下面是一个例子,也是所有语言的第一个程序,也就是helloworld。
import tensorflow as tf
hello = tf.constant('Hello, Tensorflow!')
sess = tf.Session()
print sess.run(hello)
a = tf.constant(10)
b = tf.constant(20)
print sess.run(a+b)
其中tf.constant()是在构建,而sess.run()则是在运行