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 数据结构之堆栈实例代码
Jan 22 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
Python编程求质数实例代码
Jan 31 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 Python
Python面向对象之类和实例用法分析
Jun 08 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
python变量命名的7条建议
Jul 04 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
Python函数参数定义及传递方式解析
Jun 10 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
Python学习之包与模块详解
Mar 19 Python
Python列表的索引与切片
Apr 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
五个PHP程序员工具
2008/05/26 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
python调用百度语音REST API
2018/08/30 Python
详解Python3中ceil()函数用法
2019/02/19 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
销售员岗位职责范本
2014/02/03 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
健康家庭事迹材料
2014/05/02 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
医院员工辞职信范文
2015/05/12 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
vue组件vue-esign实现电子签名
2022/04/21 Vue.js