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脚本分享
Apr 21 Python
python实现网站的模拟登录
Jan 04 Python
python八大排序算法速度实例对比
Dec 06 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
django使用admin站点上传图片的实例
Jul 28 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
python实现b站直播自动发送弹幕功能
Feb 20 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 array_unique之后json_encode需要注意
2011/01/02 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
移动端界面的适配
2017/01/11 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
python3 图片referer防盗链的实现方法
2018/03/12 Python
对python调用RPC接口的实例详解
2019/01/03 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python装饰器使用实例详解
2019/12/14 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
Java基础类库面试题
2013/09/04 面试题
新年晚会主持词
2014/03/24 职场文书
小学生植树节活动总结
2014/07/04 职场文书
甘南现象心得体会
2014/09/11 职场文书
爱心捐款感谢信
2015/01/20 职场文书
学校中秋节活动总结
2015/03/23 职场文书
手机销售员岗位职责
2015/04/11 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js