【深度学习】TensorFlow基础知识点总结
TensorFlow基础
其是一个面向于深度学习算法的科学计算库,内部数据保存在张量(Tensor)对象上,所有操作也都是基于张量对象进行。
1.数据类型
- 数值型 ——其是TensorFlow的主要数据载体
- 字符串型
- 布尔型
1.1数值类型
数值类型的张量是TensorFlow的主要数据载体,分为:
标量(Scalar) 单个的实数,维度数(Dimension,也叫秩)为0,shape=[]
向量(Vector) n个实数的有序集合,通过中括号包裹,如[1,2],维度数位1,长度不定,shape=[n]
矩阵(Matrix) n行m列实数的有序集合,如[[1,2],[3,4]],维度数为2,每个维度上的长度不定,shape=[n,m]
**张量(Tensor) ** 所有维度数dim > 2的数组统称为张量,张量的每个维度也做轴(Axis), 比如Shape =[2,32,32,3]的张量共有 4 维
在 TensorFlow 中间,为了表达方便,一般把标量、向量、矩阵也统称为张量,
In :
aa = tf.constant(1.2) # 创建标量
type(aa)
Out:
(float, tensorflow.python.framework.ops.EagerTensor, True)
In :
x = tf.constant([1,2.,3.3]) #创建向量
x,x.shape
Out:
(<tf.Tensor: id=165, shape=(3,), dtype=float32, numpy=array([1. , 2. , 3.3], dtype=float32),TensorShape([3])>)
#其中 id 是 TensorFlow 中内部索引对象的编号,shape 表示张量的形状,dtype 表示张量的数值精度,张量 numpy()方法可以返回 Numpy.array 类型的数据。
In :
a = tf.constant([[1,2],[3,4]]) #创建矩阵
a, a.shape
Out:
(<tf.Tensor: id=13, shape=(2, 2), dtype=int32, numpy= array([[1, 2],[3, 4]])>, TensorShape([2, 2]))
1.2字符串类型
TensorFlow 还支持字符串(String)类型的数据,例如在表示图 片数据时,可以先记录图片的路径,再通过预处理函数根据路径读取图片张量。
In :
a = tf.constant('Hello, Deep Learning.')
Out:
<tf.Tensor: id=17, shape=(), dtype=string, numpy=b'Hello, Deep Learning.'>
在 tf.strings 模块中,提供了常见的字符串型的工具函数,如拼接 join(),长度 length(),切 分 **split()**等等。
1.3布尔类型
布尔类型的张量只需要传入 Python 语言的布尔类型数据,转换成 TensorFlow 内部布尔型即可。
In :
a = tf.constant(True)
Out:
<tf.Tensor: id=22, shape=(), dtype=bool, numpy=True>
TensorFlow 的布尔类型和 Python 语言的布尔类型并不对等,不能通用。
2.数值精度
Bit 位越长,精度越高,同时占用的内存空间也就越大。常用的精度类型有 tf.int16, tf.int32, tf.int64, tf.float16, tf.float32, tf.float64,其中 tf.float64 即为 tf.double。
In :
tf.constant(123456789, dtype=tf.int16)
tf.constant(123456789, dtype=tf.int32)
Out:
<tf.Tensor: id=33, shape=(), dtype=int16, numpy=-13035>
<tf.Tensor: id=35, shape=(), dtype=int32, numpy=123456789>
保存精度过低时,数据 123456789 发生了溢出,得到了错误的结果,一般使用 tf.int32, tf.int64 精度。对于浮点数,高精度的张量可以表示更精准的数据。
对于大部分深度学习算法,一般使用 tf.int32, tf.float32 可满足运算精度要求,部分对 精度要求较高的算法,如强化学习,可以选择使用 tf.int64, tf.float64 精度保存张量。
2.1读取精度
访问张量的 dtype 成员属性
In :
print('before:',a.dtype)
if a.dtype != tf.float32:a = tf.cast(a,tf.float32) # 转换精度
print('after :',a.dtype)
Out:
before: <dtype: 'float16'>
after : <dtype: 'float32'>
2.2类型转换
通过 tf.cast 函数进行转换
In :
a = tf.constant(np.pi, dtype=tf.float16)
tf.cast(a, tf.double)
Out[16]:
<tf.Tensor: id=44, shape=(), dtype=float64, numpy=3.140625>
布尔型与整形之间相互转换也是合法的,是比较常见的操作
一般默认 0 表示 False,1 表示 True,在 TensorFlow 中,将非 0 数字都视为 True
3.待优化张量
为了区分需要计算梯度信息的张量与不需要计算梯度信息的张量,TensorFlow 增加了 一种专门的数据类型来支持梯度信息的记录:tf.Variable。对于不需要的优化的张量,如神经网络的输入 X, 不需要通过 tf.Variable 封装;相反,对于需要计算梯度并优化的张量,如神经网络层的W 和
1.dropout的原理: 可以把dropout看成是 一种ensemble(集成)方法,每次做完dropout相当于从原网络中找到一个更瘦的网络,具体的,它是通过一定概率对神经元连接进行舍弃,这样减 ... [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ... STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow) 在上一篇文章中我们已经有训练好的tflite模型,接下来我们要在Clion中实现,如果是Keil的朋友可以 ... [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ... 1.预备信息 1.1了解技术的发展阶段 技术一般存在几个阶段:1.发展期.2.高峰期.3.冰河期.4.应用期 就是先达到一个高峰,但是在达到高峰之后就会被发现很多问题,然后热度就会不断地下降,到达一个 ... <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ... Apsara Clouder大数据专项技能认证:使用深度学习TensorFlow框架进行图片识别 本认证系统的介绍了深度学习的一些基础知识,以及Tensorflow的工作原理.通过阿里云机器学习PAI ... 深度学习 机器学习基础 This article describes my attempt at the Titanic Machine Learning competition on Kaggle. ... 计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ... 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自 : 从零开始搭建深度学习服务器: 基础环境配置( ...【深度学习】TensorFlow基础知识点总结相关推荐
最新文章
热门文章