Keras深度学习基础概念的建立

Keras深度学习基础概念的建立


  • 什么是张量(tensor)
  • 如何操纵张量的维度
  • 实际生活中的张量
  • 张量的运算(神经网络运转的“齿轮”)

正文

  • 张量是一个任意维度的数据容器,我们很常见的有一维向量如[0,1,2,3],二维张量如矩阵,张量的维度是不收限制是任意的。并且值得注意的是张量只能存放数据,是一个数据容器。
    • 张量维度的判断方法:对弈一个张量,最外层有几个括号就是几维的张量,特别是在pytohn语言中,我们可以轻易的通过列表最大的层数来判断其维度,
    • 在Python科学计算包中,可以通过numpy来得到张量的维度,我们把数据通过np.array(list)传入,这之后,就可以通过array的ndim属性来得到张量的维度

  • 从上文我们也知道,在Python中操纵张量的最好工具就是numpy。我们知道如果一个array他的ndim属性为3,那么的shape必定为一个含有三个数据的数值,反向推理我们可以知道:如果我们改变这个数组的shape例如从含有三个数值到含有两个数值,呢么其维度必然下降到二维,这在神经网络中是很有必要的,因为TensorFlow要求输入的张量有一定的维度要求。如下图
    在这里插入图片描述

  • 在实际应用中我们会经常遇到不同维度的张量典型的图像数据为4D(即四维张量),视频数据为5D,还有一个我们可以自己定义的张量

    • 对与一个统计人的信息的数据集,假如有一万个人,我们可以定一个1w的样本轴作第一个维度,每个人又有社保,工资,邮编等数据,所以可以存储在(10000,3)这样一个张量中。
  • 接下来是最重要的张量计算,这个是Keras神经网络运算的基础。通常有以下这些操作:

    • 逐元素的运算,例如我要对这个数组内的所有元素取指数或者进行别的函数运算,这个通常还是用numpy实现的,numpy中集成了大量的对于任意维张量的逐个元素的运算。如下在这里插入图片描述
    • 另一种是张量与张量之间的运算,例如把两个张量相加。但是这里会出现一个问题,我们把不同纬度之间的张量相加会怎么样的? 不用担心这个问题,numpy存在一个广播机制,对不同维度的张量进行加法运算时他会这么做
      • 首先向较小的张量种补齐所需要的轴维度是两者的ndim相同。
      • 然后较小的张量会沿着新轴重复,知道匹配大张量。
    • 还有一种最重要的张量运算----点积,也就是线性代数中的矩阵的点积,他们的原理是相同的。我们通常使用numpy.dot来完成张量之间的点积。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值