2.何为张量

张量

  1. 关键属性

    • 轴的个数(阶)

      例如,3D张量有3个轴,矩阵有2个轴。这在Numpy等Python库中也叫张量的ndim。

    • 形状

      这是一个整数元组,表示张量沿每个轴的维度大小(元素个数)。例如,前面矩阵示例的形状为(3,5),3D张量示例为(3,3,5)。向量的形状只包含一个元素,比如(5,),而标量的状态为空,即()。

    • 数据类型(在Python库中通常叫做(dtype)

      这是张量中所包含堵数据的类型,例如张量的类型可以是float32,uint8,float64等。

    具体说明:

    • 首先加载MNIST数据集

      form keras.datasets import mnist
      
      (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
      
    • 张量train_images的轴个数,即ndim属性

      >>> print(train_images.ndim)
      3
      
    • 张量train_images形状,即shape属性

      >>> print(train_images.shape)
      (60000,28,28)
      
    • 数据类型,即dtype属性

      >>> print(train_images.dtype)
      uint8
      

      由以上可以得出,train_images是一个由8位整数组成的3D张量。

      更确切的说,它是60000个矩阵组成的数组,每个矩阵由 28×28 个整数组成。每个这样的矩阵都是一张灰度图像,元素组成范围位 0~255。

    • 显示数字

      首先要加载MNIST数据集

      import keras.datasets import mnist
      
      (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
      

      使用matplotlib画数字

      digit = train_image[4]
      
      import matplotlib.pyplot as plt
      plt.imshow(digit, cmap=plt.cm.binary)
      plt.show()
      

      显示如下

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mYRinB3l-1658044291225)(data:image/png;base64,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)]

  2. 类型

    • 标量(0D张量)

      仅包含一个数字的张量叫做标量(scalar)。

    • 向量(1D张量)

      数字组成的数组叫做向量(vector)。

    • 矩阵(2D)张量

      向量组成的数组叫做矩阵(matrix)。

    • 3D张量与更高维张量

      将多个矩阵组合成一个新的数组就,可以得到一个3D张量,可以直观地理解为一个立方体。

      将多个3D张量组成一个数组可以创作一个4D张量,以此类推。

  3. 数据张量

    • 向量数据

      • 2D张量,形状为(samples,fetures)。
      • 对于这种数据集,每个数据点都被编码为一个向量,其中第一个为样本轴即samples,第二个轴为特征轴即fetures
      • 举例:
        • 统计人口数据集,每个人的信息包含每个人的年龄、邮编和收入。每个人可以表示包含三个值的向量,而整个数据集包含100000个人,因此可以存储在形状为(100000,3)的2D向量中。
        • 文本文档数据集,我们将每个文档表示为每个单词在其中出现的次数(字典中包含20000个常见单词)。我们每个文档可以被编码为包含20000个值的向量(每个值对于于字典中每个单词出现的次数),整个数据集包含500个文档,因此可以存储在形状为(500,20000)的张量中。
    • 时间序列数据序列数据

      • 3D张量,形状为(samples,timesteps,fetures)。
      • 时间或序列顺序对数据很重要是,应该将数据存储在带有时间轴的3D张量中。根据惯例,时间轴始终是第二个轴。
      • 样本轴samples,时间轴timesteps,特征轴feture。
      • 举例:
        • 股票价格数据集。每一分钟,我们将股票的当前价格、前一分钟的最高价格和前一秒钟的最低价格保存下来。因此每分钟被编码为一个3D向量整个交易日被编码为一个形状为(390,3)的2D张量(一个交易日有390分钟),而250天的数据则可以保存在一个形状为(250,390,3)的3D张量中。这里每个样本都是一天的股票信息。
        • 推文数据集。我们将每条推文编码为280个字符组成的序列,而每个字符又来自于128个字符组成的字母表。在这种情况下,每个字符可以被编码为大小为128的二进制向量(只有在该字符对应的索引位置取1,其他元素都为0)。那么每条推文可以被编码为一个形状为(280,128)的2D张量,而包含100万条推文的数据集则可以存储在一个形状为(1000000,280,128)的张量中
    • 图像

      • 4D张量,形状为(samples,height,width,channels)或(samples,channels,height,width)。
      • 图像通常具有三个维度:高度、宽度和颜色深度
      • 虽然灰度图像只有一个颜色通道,因此可以保存在2D张量中,但按照归案例,图像张量始终都是3D张量,灰度图像的色彩通道只有一维。因此如果图像大小为256×256,那么128张灰度图像组成的批量可以保存在一个形状为(128,256,256,1)的张量中,而128张彩色图像组成的批量可以保存在一个形状为(128,256,256,3)的张量中。
      • 图像张量的形状有两种约定:**通道在后(channels-last)**的约定(**在 TensorFlow 中使用)通道在前(channels-first)**的约定(在Theano中使用)。
      • 形状也可写成(samples,height,width,color_depth) color_depth是颜色通道
    • 视频

      • 5D张量,形状为(samples,frames,height,width,channels)或(samples,frames,channles,height,width)。

      • 视频可以看作一系列帧,每一帧都是一张彩色图像。由于每一帧可以保存在一个形状为(height,width,color_depth)的3D张量中,所以一系列帧可以保存在一个形状为(frames,height,width,color_depth)的4D张量中。(freames为帧率的意思)。而不同视频组成的批量则可以保存在一个5D张量中,其形状为

        (samples,frames,height,width,color_depth)。

      • 举例:

        • 一个以每秒4帧采样的60秒的视频片段,其视频尺寸为144×256,这个视频总共有240帧。4个这样的视频片段组成的批量将保存在形状为(4,240,144,256,3)的张量中。总共106168320个值。如果张量的数据类型为(dtype)为float32,每个值都是32位,那么这个张量共有405MB。现实中的视频不以float32格式存储,而是被大大压缩。
          这样的视频片段组成的批量将保存在形状为(4,240,144,256,3)的张量中。总共106168320个值。如果张量的数据类型为(dtype)为float32,每个值都是32位,那么这个张量共有405MB。现实中的视频不以float32格式存储,而是被大大压缩。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值