目录
接下来的几个博客中会分别介绍tensorflow的基本概念:tensor,operation,session和graph。我们想弄明白的是,tensor应该如何定义?tensor有哪些操作operation?什么是计算流图,如何构建? tensor如何在计算流图中流动,实现模型的训练和预测?
tensor:张量
tensorflow的最基本数据结构就是张量,tensor。首先我们来看看如何定义tensor。tensor本质上是多维的数组,tf.Tensor与numpy的ndarray类似,也需要定义数据类型和维度。但是tf.Tensor定义的张量操作可以在GPU中加速(如果是tensorflow-gpu版本的话).
Numpy的多维数组ndarray和tensorflow的张量tensor之间可以自由转换,例如:
tensor = tf.convert_to_tensor([2,3,4], dtype=tf.float64)
tensor
Out[74]: <tf.Tensor: id=251, shape=(3,), dtype=float64, numpy=array([2., 3., 4.])>
numpy_array = tensor.numpy()
numpy_array
Out[76]: array([2., 3., 4.])
tensor有三个基本属性:标签label,维度dimension和数据类型data type。
张量的数据类型
tf.dtypes 模块(module)定义了与数据类型相关的类和函数。Python Module(模块),是一个文件,包含了Python对象定义和Python语句(definitions and statements)。文件名就是模块名加上后缀.py,在模块内部,模块名存储在全局变量__name__中,是一个string,可以直接在module中通过__name__引用到module name。
module是为了重复使用一些对象,比如类,函数,而将这些对象定义放在一个.py文件中,或是将一个较大的工程裁缝为多个.py文件而易于维护,每一个.py文件都是一个module。
tf.dtypes模块的说明文档:https://tensorflow.google.cn/api_docs/python/tf/dtypes
Dtype类
tf.dtypes中包括了一个类: Dtype, 定义了张量可以支持的数据类型,如下图所示:
函数
tf.as_type() :定义Dtype类型对象
使用方法:
tf.dtypes.as_dtype(type_value)
type_value可以是tf.Dtype定义的数据类型,也可以是由tf.Dtype类型组成的枚举。
x = tf.constant([1.8, 2.2], dtype=tf.float32)
xint = tf.dtypes.as_type(tf.int32)