https://www.toutiao.com/a6677188362316546564/

医工荟萃,不是萝卜开会,融合创新才是硬道理!

预计阅读时间: 4 分钟

上一讲中荟荟用keras演示了使用全连接神经网络如何实现手写数字的识别,当然这个神经网络还是相当的"浅"。在正式开始进入深度学习前,荟荟认为作为初学者,很有必要先了解一下神经网络里的数据表示方法,即TensorFlow这个词里的Tensor(张量),以及张量的基本操作和运算方法。

上一讲发出后,被吐槽太长了,看得累。。。所以这讲荟荟先来说说啥是张量,下一讲再说说它的基本操作及运算,再下一讲正式进入深度学习。

啥叫张量(Tensor)?

前面的例子中,我们的数据都是存储在Numpy数组中的,在深度学习中,我们对这种多维数组有个专门的名字叫做张量“Tensor”, 携带信息的张量(Tensor)在神经网络中不断流动(Flow),所以知名的深度学习框架叫做TensorFlow。在这里我们无需理解张量在数学中的含义----多重线性映射(听起来就晕死),只需理解张量是矩阵向任意维度的推广。下面用实际的例子来解释一下,就一清二楚了:

  • 标量(0维张量)

在Numpy中使用只有一个float32或float64数构成的数组,叫做0维张量,它的维数为0 (张量的维数有时也称之为轴,故标量张量的轴为0)代码中的x.ndim给出数组x的轴数

标量(0维张量)

  • 向量(1维张量)

一系列数字构成的向量,也称为1维(1D)张量,有1个轴。

向量(1维张量)

  • 矩阵(2维张量)

多个向量组成的矩阵,称为2维(2D)张量,有两个轴,第一个轴叫做行(row),第二个轴叫做列(column)

矩阵(2维张量)

  • 3维张量或更高维张量

将多个矩阵组成数组,则构成3维(3D)张量,有三个轴,第一个轴叫做批量轴(batch-axis),可以理解为:如果某个矩阵代表一个样本比如一个灰度图像,批量轴就是有多少个样本。第二个轴是行,第三个轴是列。通常来说深度学习中的数据的第一个轴(0轴,索引从0开始)都是批量轴。

3维张量或更高维张量

本例中除了使用x.ndim看有多少个轴外,还可以使用x.shape看一下这个3D张量x的形状,可以发现x是由三个3*5的矩阵构成的(3, 3 ,5)。x.shape返回的是一个python元组tuple( 就是一个常量列表,python语言的基础入门在这里就不再赘述,一点基础没有的朋友,推荐大家搜索公众号“crossin的编程教室”,里面有非常简洁明了的入门教程哦!)

至于4维张量,就是由多个3维张量构成的数组,比如做图像识别的彩色图像张量就是4维张量,在TensorFlow里的形状就是(样本数/批量,高,宽,颜色通道)。深度学习里最常用的张量也就是0D-4D的张量了

0D-6D张量的形象理解如下图所示。

0D-6D张量

除了上述介绍的轴的个数(ndim),张量形状(shape), 张量同学还有一个重要属性是数据类型(dtype),通常包括float32、float64、uint8等。以上讲中mnist数据集为例(见下图),训练集是一个3维张量,形状是(60000, 28, 28)即60000个28*28的灰度图像,图像像素的数据类型是uint8,也就是取值范围为0-255的整形数。

mnist数据集的张量属性

总结:本讲应该了解啥是张量,0D-4D的张量代表了什么,张量的主要属性ndim、shape、dtype。下一讲荟荟来说说张量的基本操作和运算。

【AI学习篇】实战深度学习(3):深度学习的数据表示相关推荐

  1. Python深度学习篇一《什么是深度学习》

    在过去的几年里,人工智能(AI)一直是媒体大肆炒作的热点话题.机器学习.深度学习 和人工智能都出现在不计其数的文章中,而这些文章通常都发表于非技术出版物.我们的未来被描绘成拥有智能聊天机器人.自动驾驶 ...

  2. Python深度学习篇

    Python深度学习篇一<什么是深度学习> Excerpt 在过去的几年里,人工智能(AI)一直是媒体大肆炒作的热点话题.机器学习.深度学习 和人工智能都出现在不计其数的文章中,而这些文章 ...

  3. [网络安全学习篇52]:扫描技术

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  4. [网络安全学习篇65]:提权

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  5. [网络安全学习篇58]:PHP代码注入

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  6. [网络安全学习篇60]:文件上传

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  7. 网络安全学习篇28_阶段一小结篇_木马的原理及木马防范

    上一篇博客:网络安全学习篇27_阶段一小结篇_DNS欺骗与钓鱼网站的防范 写在前面: 刚开始接触了一些关键词如渗透,sql注入,靶场等就发现对此方面挺感兴趣,毕竟有的人大大小小都有一个黑客梦,恰巧在 ...

  8. Python学习篇(五) Python中的循环

    文章目录 前言 一.range函数 二.while循环 2.1四步循环法 三.for in 循环 四.流程控制语句 4.1 break 4.2 continue 五.else语句 六.嵌套循环 七.二 ...

  9. [网络安全学习篇55]:SQL自动化注入

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  10. FPGA学习篇之分频器

    FPGA学习篇之分频器 文章目录 FPGA学习篇之分频器 前言 一.偶数分频 二.奇数分频 总结 前言   分频器是数字电路中最常用的基本电路之一,目的是对输入时钟进行分频,输出任何低于输入时钟的频率 ...

最新文章

  1. 10000字的Pandas核心操作知识大全!
  2. SQL语句中exists和in的区别
  3. Linux系统调用及其效率
  4. 一些杂七杂八的前端知识1
  5. VS, VS Code, VS Online, VS xxx, 你都分清了吗?
  6. 程序员的生存发展和出路
  7. JS_17 ES5,ES6
  8. vue 导出excel
  9. 全国计算机等级考试3月份报名时间,2021年3月全国计算机等级考试报名时间公布...
  10. FIR与IIR滤波器
  11. 统计|如何理解两个总体均值之差的区间估计的计算
  12. Exp2 后门原理与实践 ——20164316张子遥
  13. 我能成为一名布道师吗?
  14. 斐波纳契数列 python123
  15. 【性能定位】使用jstack定位线程堆栈信息
  16. 腾讯云物联网-网关设备体验
  17. 自己写的C盘清理工具 Ver1.0.0
  18. 转载:越读越有味的句子
  19. SQL 创建数据库和表
  20. Java 多线程 不使用锁机制 实现交替打印数字和字母

热门文章

  1. 陈希孺院士带来开年第一本数学书,让人看完大呼过瘾的统计学科普读本
  2. 豆瓣9.3分,日漫风格的机器学习数学书
  3. 一个量子物理学家是怎样研究 AI 的? | 8月书讯
  4. 程序员11月书讯 | 硅谷,梦开始的地方
  5. 在嘴巴里放入124 个传感器,谷歌眼镜创始人新项目:用舌头发信息
  6. ICML 2021论文接收大排行!谷歌霸榜,国内北大第一、清华第二,华人学者表现亮眼.........
  7. 用鞋子给视障人士导航!这款“导盲鞋”可检测4米外障碍物,振动提醒躲避,一双2w5...
  8. Google团队发布,一文概览Transformer模型的17大高效变种
  9. 独家 | 教你使用简单神经网络和LSTM进行时间序列预测(附代码)
  10. 剑指offer:把数组排成最小的数