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 和

【深度学习】TensorFlow基础知识点总结相关推荐

  1. 机器学习与深度学习一些基础知识点

    1.dropout的原理: 可以把dropout看成是 一种ensemble(集成)方法,每次做完dropout相当于从原网络中找到一个更瘦的网络,具体的,它是通过一定概率对神经元连接进行舍弃,这样减 ...

  2. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...

  3. STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow)

    STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow) 在上一篇文章中我们已经有训练好的tflite模型,接下来我们要在Clion中实现,如果是Keil的朋友可以 ...

  4. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...

  5. 深度学习的基础知识(机器学习、损失函数、梯度下降、反向传播、基础模型一网打尽)

    1.预备信息 1.1了解技术的发展阶段 技术一般存在几个阶段:1.发展期.2.高峰期.3.冰河期.4.应用期 就是先达到一个高峰,但是在达到高峰之后就会被发现很多问题,然后热度就会不断地下降,到达一个 ...

  6. 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

    <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...

  7. 使用深度学习TensorFlow框架进行图片识别

    Apsara Clouder大数据专项技能认证:使用深度学习TensorFlow框架进行图片识别 本认证系统的介绍了深度学习的一些基础知识,以及Tensorflow的工作原理.通过阿里云机器学习PAI ...

  8. 深度学习 机器学习基础_实用的机器学习基础

    深度学习 机器学习基础 This article describes my attempt at the Titanic Machine Learning competition on Kaggle. ...

  9. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  10. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

最新文章

  1. Anaconda使用
  2. 强烈推荐可以玩上一整天的游戏网站
  3. android思维导图github,2020年GitHub 上那些优秀Android开源库,这里是Top10!
  4. ORACLE内存结构简介
  5. RMSE、MAE等误差指标整理
  6. 【MySQL】Linux下登录mysql时忘记密码了怎么办?
  7. Bailian2884 Problem III【入门】
  8. 决胜新能源汽车战场:价格拖死战、舆论声量战、产业兼并战
  9. win7锁定计算机自动关机,windows7怎么设置电脑自动关机_win7如何自动关机
  10. 计算机网络6 应用层
  11. CRUD矩阵方法 实例
  12. 服务器(2080Ti)配置pytorch,distiller开发环境踩坑记录
  13. 数据我爬定了,限流也挡不住,我说的
  14. 2022年暑期CTF刷题WP(停止更新)
  15. Ubuntu18.04 在线安装显卡驱动
  16. talent-aio
  17. ccnp需要什么样的水平?
  18. java 解析/读取 种子/bt/torrent 内容
  19. 时间格式区别之YYYY/MM/dd HH:mm 与 yyyy/MM/dd HH:mm
  20. 金领航三版网站程序总是出问题,如何做个好的程序猿?

热门文章

  1. 计算机管理评价指标,评价指标体系
  2. 大天使黎明服务器维护,亲爱的玩家: 您好,为保证服务
  3. 程序员们为什么不能“面朝大海,春暖花开?”
  4. 质数——夏洛克和他的女朋友
  5. [计算机网络]第一章——计算机网络和因特网
  6. TMA3.0.2.5铁塔制造助手+屏幕录像专家
  7. Centos服务器上安装Tomcat
  8. Chart.js使用(一)
  9. 二路归并排序原理及JAVA实现
  10. pycharm定义空的二维数组_数组与面向对象