tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解


Posted in Python onJune 03, 2020

1.作用

  • dataset.shuffle作用是将数据进行打乱操作,传入参数为buffer_size,改参数为设置“打乱缓存区大小”,也就是说程序会维持一个buffer_size大小的缓存,每次都会随机在这个缓存区抽取一定数量的数据
  • dataset.batch作用是将数据打包成batch_size
  • dataset.repeat作用就是将数据重复使用多少epoch

2.各种不同顺序的区别

示例代码(以下面代码作为说明):

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
 
dataset = tf.data.Dataset.from_tensor_slices(np.arange(20).reshape((4, 5)))
 
dataset = dataset.shuffle(100)
dataset = dataset.batch(3)
dataset = dataset.repeat(2)
 
sess = tf.Session()
 
iterator = dataset.make_one_shot_iterator()
input_x = iterator.get_next()
 
print(sess.run(input_x))
print(sess.run(input_x))
print(sess.run(input_x))
print(sess.run(input_x))

1.顺序1(训练过程最常用的顺序)

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

先看结果:

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

解释:相当于把所有数据先打乱,然后打包成batch输出,整体数据重复2个epoch

特点:1.一个batch中的数据不会重复;2.每个epoch的最后一个batch的尺寸小于等于batch_size

2.顺序2

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

先看结果:

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

解释:相当于把所有数据先打乱,再把所有数据重复两个epoch,然后将重复两个epoch的数据放在一起,最后打包成batch_size输出

特点:1.因为把数据复制两份,还进行打乱,因此某个batch数据可能会重复,而且出现重复数据的batch只会是两个batch交叉的位置;2.最后一个batch的尺寸小于等于batch_size

3.顺序3

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

先看结果:

tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解

解释:相当于把所有数据先打包成batch,然后把打包成batch的数据重复两遍,最后再将所有batch打乱进行输出

特点:1.打乱的是batch;2.某些batch的尺寸小于等于batch_size,因为是对batch进行打乱,所以这些batch不一定是最后一个

3.其他组合方式

根据上面几种顺序,大家可以自己分析其他顺序的输出结果

到此这篇关于tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解的文章就介绍到这了,更多相关tensorflow dataset.shuffle、dataset.batch、dataset.repeat内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用grappelli为django admin后台添加模板
Nov 18 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
Python 多进程和数据传递的理解
Oct 09 Python
python遍历文件夹下所有excel文件
Jan 03 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
python实现高斯判别分析算法的例子
Dec 09 Python
pycharm 对代码做静态检查操作
Jun 09 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
利用python实现平稳时间序列的建模方式
Jun 03 #Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 #Python
基于Python快速处理PDF表格数据
Jun 03 #Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 #Python
Python3创建Django项目的几种方法(3种)
Jun 03 #Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 #Python
使用python实现时间序列白噪声检验方式
Jun 03 #Python
You might like
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
网站当前的在线人数
2006/10/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
javascript实时显示当天日期的方法
2015/05/20 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
经管应届生求职信
2013/11/17 职场文书
师范学院教师自荐书
2014/01/31 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
服务员岗位责任制
2014/02/11 职场文书
高三霸气励志标语
2014/06/24 职场文书
党课培训心得体会
2014/09/02 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
班主任培训研修日志
2015/11/13 职场文书
2019年工作总结范文
2019/05/21 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
MySQL表的增删改查基础教程
2021/04/07 MySQL
教你怎么用python selenium实现自动化测试
2021/05/27 Python
python 爬取吉首大学网站成绩单
2021/06/02 Python
浅析Python中的套接字编程
2021/06/22 Python