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 相关文章推荐
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
Aug 23 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
Django中的Model操作表的实现
Jul 24 Python
python如何爬取网站数据并进行数据可视化
Jul 08 Python
python增加图像对比度的方法
Jul 12 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
python多维数组分位数的求取方式
Mar 03 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
Python基础之pandas数据合并
Apr 27 Python
七个Python必备的GUI库
Apr 27 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
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php不用正则验证真假身份证
2013/11/06 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
开场白怎么写
2015/06/01 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书