TensorFlow 2简介
TensorFlow 是由谷歌在 2015 年 11 月发布的深度学习开源工具,我们可以用它来快速构建深度神经网络,并训练深度学习模型。
张量
张量的概念
通常定义张量的物理学或传统数学方法,是把张量看成一个多维数组,当变换坐标或变换基底时,其分量会按照一定规则进行变换,这些规则有两种:即协变或逆变转换。
一阶张量为向量,二阶张量为矩阵。当然,零阶张量也就是标量,而更重要的是 𝑁 阶张量,也就是 𝑁 维数组。
![在这里插入图片描述](https://img-blog.csdnimg.cn/67211bf0cf804aea8010fbfb0b7d27ae.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTY5Nzcy,size_16,color_FFFFFF,t_70)
数据类型和形状
在 TensorFlow 中,每一个 Tensor 都具备两个基础属性:数据类型(默认:float32)和形状。
数据类型
![在这里插入图片描述](https://img-blog.csdnimg.cn/d394409e915145ce97c0c5a4aae3ca4b.png)
形状
![在这里插入图片描述](https://img-blog.csdnimg.cn/66bf3949e383449da40ebbe14b563e50.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTY5Nzcy,size_16,color_FFFFFF,t_70)
用途
tf.Variable :变量 Tensor,需要指定初始值,常用于定义可变参数,例如神经网络的权重。 tf.constant :常量 Tensor,需要指定初始值,定义不变化的张量。
新建变量和常量类型的张量: 导入模块并获取版本信息
import tensorflow as tf
tf.__version__
变量:
v = tf.Variable([[1, 2], [3, 4]])
v
![在这里插入图片描述](https://img-blog.csdnimg.cn/a80122a3b656489eb16d9710227dea72.png) 常量:
c = tf.constant([[1, 2], [3, 4]])
c
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b2195be86a840fb9074a3e41a07d586.png) 输出包含了形状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
![在这里插入图片描述](https://img-blog.csdnimg.cn/160b05a4a661447bbb21163df1bdc46a.png)
c = tf.zeros_like([[1,2],[3,4]])
c
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd23041bd5d8423aa19382efa22838ea.png)
tf.ones_like(c)
![在这里插入图片描述](https://img-blog.csdnimg.cn/92155eec620942e9a6dba95ab148eab5.png)
tf.fill([2,3],6)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce29eb79eb8d4dcd89c696b406f187fc.png)
创建一个等间隔序列
tf.linspace(1.0,10.0,5,name="linspace")
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a4628f815f54ad7ad4b3deb3a2c3cbb.png)
创建一个数字序列
tf.range(start=1,limit=10,delta=2)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f918ad5b2eb44e99b88bc185e718e471.png)
矩阵乘法:c = tf.linalg.matmul(a, b) 转置矩阵:tf.linalg.matrix_transpose?
自动微分
![在这里插入图片描述](https://img-blog.csdnimg.cn/85ce69fa63a241b5b2aa16bb1a8bf642.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTY5Nzcy,size_16,color_FFFFFF,t_70)
常用模块
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 中常用模块及功能。
|