TensorFlow安装
普通版本
pip install tensorflow
GPU版本
pip install tensorflow-gpu
其它步骤参考https://www.tensorflow.org/install
TensorFlow中的三种模式
首先我们看一下TensorFlow,把它分开就是Tensor和Flow。
这个Tensor为多维或高维矩阵,TensorFlow的框架里数据都是以tensor的形式存储的。Flow 数据根据制定的计算图进行流转。
计算模式—计算图(Computation Graph)
什么是计算图
TensorFlow是一个通过计算图的形式表示计算的编程系统,TensorFlow中的所有计算都会被转化为计算图上的节点,节点之间的边描述了计算之间的依赖关系。
如下图就是一个加法计算图,圆圈就是tensor,箭头就是Flow。
TF程序的两个阶段
TensorFlow不是像我们之前写Python的代码一样,想到什么写什么,而是要提前把所有的计算定义好,把规则制定好,也就是画好计算图。画好完整的图以后才能执行计算。
即TF程序通常分两个阶段:
1. 定义计算图中所有的计算;
2. 执行计算
获取TF自动维护的默认计算图
TF程序自动维护一个默认的计算图,可通过tf.get_default_graph函数获取
tf.get_default_graph
或者a.graph(如果没有特殊声明,a.graph返回其所属的计算图,即默认的计算图)
资源共享
TensorFlow中不同计算图上的张量和运算不共享,那么我们需要共享时应该如何操作呢?
一个计算图中可以通过collection管理不同类别的资源
①将资源加入集合中
tf.add_to_collection
②获取集合里的所有资源
tf.get_collectoin
数据模式—张量(Tensor)
张量是什么
Tensor是TF管理数据的形式,可简单地理解为多维数组。
张量主要保存三个属性:名字(name)、维度(shape)、类型(dtype)
张量是得到数据的过程,并未保存数据
TF中的张量并没有真正保存数据,而是如何得到这些数据的过程
举个例子就明白了:
a = tf.constant([1.0, 2.0], name='a') #定义一个常量,命名为a
b = tf.constant([2.0, 3.0], name='b') #定义一个常量,命名为b
result = tf.add(a, b, name='add') #定义一个计算模式,命名为add
print(result) #结果是Tensor("add:0", shape=(2,), dtype=float32),而不是求和后的值,这就表明我们只是定义了计算模式,还未运行
tf.Session().run(result) #加了这一步就会得到运行结果array([3., 5.], dtype=float32)
张量的用途
- 作为中间计算结果的引用,提高程序的可读性
- 通过张量获得计算结果,即真实的数据
方法为
tf.Session().run()
运行模式—会话(Session)
通过上面