• Python深度学习 学习笔记2 神经网络的数据表示


    1.Tensor(张量)

    张量是一个数据容器,包含的数据几乎总是数值数据,因此是数字的容器。矩阵是二维张量。

    2.scalar(标量,标量张量,零维张量,0D张量)

    标量张量有0个轴(ndim == 0)。张量轴的个数也叫阶。

    1. >>>import numpy as np #将numpy加载为np
    2. >>>x=np.array(12)
    3. >>>x
    4. array(12)
    5. >>>x.ndim
    6. 0

    3.vector(向量,1D张量)

    数字组成的数组叫做向量或一维张量。一位张量只有一个轴

    1. >>>x=np.array([12,3,6,14,7]) #5D向量,但轴是1
    2. >>>x
    3. array([12,3,6,14,7])
    4. >>>x.ndim
    5. 1

    4.matrix(矩阵,2D张量)

    矩阵有两个轴(第一个轴上的元素叫做行(row),第二个轴上的元素叫做列(column))

    1. >>>x=np.array([[5,78,2,34,0],
    2. [6,79,3,35,1],
    3. [7,80,4,36,2]])
    4. >>>x.ndim
    5. 2

    5. 3D张量与更高维张量

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

    6.关键属性

    阶的个数(ndim)、形状(shape)、数据类型(dtype)

    1. #加载MNIST数据集
    2. from keras.datasets import mnist
    3. (train_images,train_labels),(test_images,test_labels)=mnist.load_data()
    4. >>>print(train_images.ndim)
    5. 3
    6. >>>print(train_images.shape)
    7. (60000,28,28)
    8. >>>print(train_images.dtype)
    9. uint8
    10. #这里的train_images是由60000个矩阵组成的数组,每个矩阵由28*28个整数组成

    显示该3D张量中第4个数字(第4个图像样本)

    1. digit=train_images[4]
    2. import matplotlib.pyplot as plt
    3. plt.imshow(digit,cmap=plt.cm.binary)
    4. plt.show()

    7.张量切片

    选择张量的特定元素叫做张量切片。

    1. #选择第10~100个数字,将其放在形状位(90,28,28)的数组中
    2. >>>my_slice=train_images[10:100]
    3. >>>print(my_slice.shape)
    4. (90,28,28)
    5. #等同于以下,给出了切片沿张量轴(row,column)的起始索引和结束索引
    6. >>>my_slice=train_images[10:100,:,:]
    7. >>>my_slice.shape
    8. (90,28,28)
    9. >>my_slice=train_images[10:100,0:28,0:28]
    10. >>my_slice.shape
    11. (90,28,28)
    12. #所以图像右下角选出14*14像素区域
    13. my_slice=train_images[:,14:,14:]
    14. #所有图像中心裁剪出14*14像素区域
    15. my_slice=train_images[:,7:-7,7:-7]

    8.数据批量

    通常,深度学习中所有数据张量的第一个轴(0轴)都是样本轴。

    深度学习模型不会同时处理整个数据集,而是将数据拆分成小批量(batch)。

    1. batch=train_images[:128] #第一个批量
    2. batch=train_images[128:256] #第二个批量
    3. batch=train_images[128*n:128*(n+1)] #第n个批量

     对于这种批量张量,第一个轴叫做批量轴或批量维度。

    9.图像数据

    128张灰度图像组成的批量可以保存在一个形状为(128,256,256,1)的张量中

    128张彩色图像组成的批量可以保存在一个形状为(128,256,256,3)的张量中

    10.视频数据

    一个以每秒4帧采样的60秒YouTube视频片段,视频尺寸为144*256,这个视频共有240帧。

    4个这样的视频片段组成的批量将保存在形状为(4,240,144,256,3)的张量中。

  • 相关阅读:
    C语言中的类型转换
    微软发现影响 Linux 和 macOS系统的 ncurses 库漏洞
    【Java基础】· 集合习题详解
    k8s 使用ingress-nginx访问集群内部应用
    新日语(2)】第15課 張さんは部長に褒められました
    07-Go语言中map数据结构用法
    web界面无操作实现自动锁屏
    Java实现从Redis中批量读取数据
    对话框管理器第五章:将非模态对话框转为模态
    云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙
  • 原文地址:https://blog.csdn.net/llvyeriji/article/details/125618792