TensorFlow 2简介
TensorFlow 是由谷歌在 2015 年 11 月发布的深度学习开源工具,我们可以用它来快速构建深度神经网络,并训练深度学习模型。
张量
张量的概念
通常定义张量的物理学或传统数学方法,是把张量看成一个多维数组,当变换坐标或变换基底时,其分量会按照一定规则进行变换,这些规则有两种:即协变或逆变转换。
一阶张量为向量,二阶张量为矩阵。当然,零阶张量也就是标量,而更重要的是 𝑁 阶张量,也就是 𝑁 维数组。
数据类型和形状
在 TensorFlow 中,每一个 Tensor 都具备两个基础属性:数据类型(默认:float32)和形状。
数据类型
形状
用途
tf.Variable :变量 Tensor,需要指定初始值,常用于定义可变参数,例如神经网络的权重。 tf.constant :常量 Tensor,需要指定初始值,定义不变化的张量。
新建变量和常量类型的张量: 导入模块并获取版本信息
import tensorflow as tf
tf.__version__
变量:
v = tf.Variable([[1, 2], [3, 4]])
v
常量:
c = tf.constant([[1, 2], [3, 4]])
c
输出包含了形状shape,数据类型dtype,对应的numpy数组
tf.zeros :新建指定形状且全为 0 的常量 Tensortf.zeros_like :参考某种形状,新建全为 0 的常量 Tensortf.ones :新建指定形状且全为 1 的常量 Tensortf.ones_like :参考某种形状,新建全为 1 的常量 Tensortf.fill :新建一个指定形状且全为某个标量值的常量 Tensor
c = tf.zeros([3,3])
c
c = tf.zeros_like([[1,2],[3,4]])
c
tf.ones_like(c)
tf.fill([2,3],6)
创建一个等间隔序列
tf.linspace(1.0,10.0,5,name="linspace")
创建一个数字序列
tf.range(start=1,limit=10,delta=2)
矩阵乘法:c = tf.linalg.matmul(a, b) 转置矩阵:tf.linalg.matrix_transpose?
自动微分
常用模块
tf. :包含了张量定义,变换等常用函数和类。tf.data :输入数据处理模块,提供了像 tf.data.Dataset 等类用于封装输入数据,指定批量大小等。tf.image :图像处理模块,提供了像图像裁剪,变换,编码,解码等类。tf.keras :原 Keras 框架高阶 API。包含原 tf.layers 中高阶神经网络层。tf.linalg :线性代数模块,提供了大量线性代数计算方法和类。tf.losses :损失函数模块,用于方便神经网络定义损失函数。tf.math :数学计算模块,提供了大量数学计算函数。tf.saved_model :模型保存模块,可用于模型的保存和恢复。tf.train :提供用于训练的组件,例如优化器,学习率衰减策略等。tf.nn :提供用于构建神经网络的底层函数,以帮助实现深度神经网络各类功能层。tf.estimator :高阶 API,提供了预创建的 Estimator 或自定义组件。# 系列文章目录
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了张量,自动微分等机制,同时梳理了 TensorFlow 中常用模块及功能。
|