深度学习(18)神经网络与全连接层一: 数据加载

  • 1. 常用数据集
  • 2. MNIST数据集
    • (1) MNIST样本
    • (2) MNIST加载案例
  • 3. CIFAR10/100
    • (1) CIFAR10/100样本
    • (2) CIFAR10/100加载案例
    • (3) tf.data.Dataset
    • (4) .shuffle(打散功能)
    • (5) .map(数据预处理功能)
    • (6) .batch
    • (7) StpIteration
    • (8) .repeat()
    • (9) For example

Outline

  • keras.datasets
  • tf.data.Dataset.from_tensor_slices
    • shuffle
    • map
    • batch
    • repeat
  • we will talk Input Pipeline later

1. 常用数据集

keras.datasets

  • boston housing

    • Boston housing price regression dataset.
  • mnist/fashion mnist
    • MNIST/Fashion-MNIST dataset.
  • cifar10/100
    • small images classification dataset.
  • imdb
    • sentiment clssification dataset.

2. MNIST数据集

(1) MNIST样本

  • 图片的shape=[28, 28, 1],共有70k张图片,其中60k张作为训练集,10k张作为测试集。

(2) MNIST加载案例

(a)(x, y), (x_test, y_test) = kares.datasets.mnist.load_data(): 自动下载,管理,解析,读取,转换这一系列的工作,最终拿到的是一个Numpy的格式,其中(x, y)为train,即训练集,x.shape=[60000, 28, 28],y.shape=[60000,]; (x_test, y_test)为test,即测试集,x_test.shape=[10000, 28, 28],y_test.shape=[10000,];
(b)x.min()=0; x.max()=255; 注意这里的min和max都是Numpy里的API,这俩值代表了一张图片里每个像素点的灰度值在[0~255]之间; 为了方便计算,需要归一化操作,在后边的操作中需要将其除以255,来达到将其值控制在[01](或者[-11]、[-0.5~0.5],具体怎么处理要看具体应用目的)之间的目的;
(c)y[:4]: 取前4张图片的y值,即标签值,为[5, 0, 4, 1],即代表第一章图片的label值为5; 即代表第二章图片的label值为0; 即代表第三章图片的label值为4; 即代表第四章图片的label值为1; 数据类型为unit8;
(d)y_onehot = tf.one_hot(y, depth=10): 将y进行onehot编码,因为共有10个数字类别,所以设置depth=10;
(e)y_onehot[:2]: 查看前两个元素,即第一个元素的标签值为“5”,所以其onehot编码为[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.,]; 第一个元素的标签值为“0”,所以其onehot编码为[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.,];

3. CIFAR10/100

(1) CIFAR10/100样本

  • CIFAR10表示共有10种类型(大类,例如车、狗、鸟等等)的图片; CIFAR100表示共有100种类型(小类,例如狗分为边牧、田园犬等等)的图片; CIFAR10和CIFAR100是同一个数据集;
  • 每张彩色图片的shape=[32, 32, 3];

(2) CIFAR10/100加载案例

(a)(x, y), (x_test, y_test) = kares.datasets.cifar10.load_data(): 加载与解析CIFAR10数据集;
(x, y), (x_test, y_test) = kares.datasets.cifar100.load_data(): 加载与解析CIFAR100数据集;
(b) 输入输出
训练集输入x.shape=[50000, 32, 32, 3];
训练集输出y.shape=[50000, 1];
测试集输入x_test.shape=[10000, 32, 32, 3];
测试集输出y_test.shape=[10000, 1];

(3) tf.data.Dataset

  • from_tensor_slices()

(a)db = tf.data.Dataset.from_tensor_slices(x_test): 利用from_tensor_slices()函数将Numpy类型的x_test转换为Dataset的实例,db就可以很方便地进行迭代操作;
(b)next(iter(db)).shape: iter(db)为迭代器,即it = iter(db) →\to→ next(it);
(c) from_tensor_slice()比“先将数据转换为Tensor类型再一个个读取的方法”要好很多;
(d)db = tf.data.Dataset.from_tensor_slices((x_test, y_test)): 这里可以看出,Dataset可以传入两个参数,x_test即images,y_test即label;

(4) .shuffle(打散功能)

(a)db = db.shuffle(10000): 将[0~10000]区域内的样本随机打散,注意打散的时候x_test对应的y_test必须保持一致;

(5) .map(数据预处理功能)

(a)preprocess(x, y): 定义一个数据预处理的函数;
(b)db2 = db.map(preprocess): 定义预处理函数后,就可以使用map()函数直接调用预处理函数对数据集进行预处理;

(6) .batch

(a)db3 = db2.batch(32): 将数据集划分为1个batch32张图片;

(7) StpIteration

(8) .repeat()

(9) For example

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》

深度学习(18)神经网络与全连接层一: 数据加载相关推荐

  1. 深度学习之浅谈全连接层

    参考:https://www.zhihu.com/question/41037974 全连接层 全连接层(fully connected layers,FC)在整个卷积神经网络中起到"分类器 ...

  2. 深度学习(21)神经网络与全连接层四: 输出方式

    深度学习(21)神经网络与全连接层四: 输出方式 1. y∈Rdy∈R^dy∈Rd 2. yi∈[0,1]y_i∈[0,1]yi​∈[0,1] 3. sigmoid函数 (1) 目的 (2) tf.s ...

  3. 深度学习(22)神经网络与全连接层五: 误差计算

    深度学习(22)神经网络与全连接层五: 误差计算 1. MSE 2. Entropy(熵) 3. Cross Entropy 4. Binary Classification 5. Single ou ...

  4. 深度学习(19)神经网络与全连接层二: 测试(张量)实战

    深度学习(19)神经网络与全连接层二: 测试(张量)实战 1. 传入测试集数据 2. 数据类型转换 3. 创建test_db 4. test/evluation 5. 创建神经网络 6. 输出 7. ...

  5. MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...

  6. 卷积层和全连接层的区别_卷积神经网络中全连接层作用理解总结

    前言 一般来说,卷积神经网络会有三种类型的隐藏层--卷积层.池化层.全连接层.卷积层和池化层比较好理解,主要很多教程也会解释. •  卷积层(Convolutional layer)主要是用一个采样器 ...

  7. 神经网络学习(二)Tensorflow-简单神经网络(全连接层神经网络)实现手写字体识别

    神经网络学习(二)神经网络-手写字体识别 框架:Tensorflow 1.10.0 数据集:mnist数据集 策略:交叉熵损失 优化:梯度下降 五个模块:拿数据.搭网络.求损失.优化损失.算准确率 一 ...

  8. Python学习笔记--pytorch--随机梯度下降、神经网络与全连接层

    随机梯度下降 是一个向量,代表函数在某一个点增长的方向,模代表了在该点增长的速率 影响搜索过程的因素: 初始状态,学习率,动量 激活函数 1.torch.sigmoid (0,1) a=torch.l ...

  9. 神经网络的全连接层_深度神经网络全连接层

    一.概念 全连接层一般在网络的最后部分做分类输出,全连接层的有m个输入和n个输出,每一个输出都和所有的输入相连,相连的权重w都是不一样的,同时每一个输出还有一个bias. 二.前向全连接 假设输入是4 ...

最新文章

  1. SQL SERVER中什么情况会导致索引查找变成索引扫描
  2. C#将DataTable转换成list的方法
  3. php中mysql自增_MySQL的自增字段
  4. React简单表单最佳实践
  5. ubuntu下安装配置hadoop
  6. Android总结 之 AsyncTask(二)
  7. 用chkconfig配置linux自启动服务,用chkconfig配置linux自启动服务
  8. java 强制转换 效率_Java 性能优化:35 个小细节,让你提升 Java 代码的运行效率...
  9. session 拦截器中获取不到session值_拦截器实现登陆验证
  10. Ubuntu12.04中如何让命令行路径变短
  11. vb连接oracle 工程,VB 连接Oracle数据库
  12. 5个微信隐藏功能大揭秘(七夕表白代码)
  13. HTML5代码雨程序
  14. 01背包问题——大背包:
  15. 1块钱30分钟利用华为云服务器配置一台云电脑并搭建一个简易网站(步步截图较详细)
  16. 上海区域赛Unlock the Cell Phone
  17. amdr7-4700linux,Yoga14s 2021 ARH R7 4800H 安装Arch Linux
  18. 深度学习:Q-learning收敛证明
  19. mac 两种视频转音频方法
  20. WRF替换静态地理数据中的土地利用数据(WRF替换下垫面数据)

热门文章

  1. Scrapped or attached views may not be recycled. isScrap:false isAttached:true错误
  2. opencv 阈值分割_CVPR2019实例分割Mask Scoring RCNN
  3. web flash rtmp_基于RTMP和WebRTC开发大规模低延迟(1000毫秒内)直播系统
  4. Android开发之自定义view预览不显示的问题
  5. 人工智能应用上的九大障碍
  6. Citrix Provisioning Services:Windows 10 VDA计算机的登录性
  7. centos7环境下ELK部署之elasticsearch
  8. Nhibernate+SQLite 入门实例指南二 类的继承、多态关系
  9. Error:Unable to capture view hierarchy
  10. 使用 rem 实现 适配各种屏幕布局