分类目录:《深入浅出TensorFlow2函数》总目录


函数:

shuffle(buffer_size, seed=None, reshuffle_each_iteration=None, name=None)

该函数可以随机洗牌此数据集的元素。此数据集使用buffer_size的元素填充缓冲区,然后从该缓冲区中随机采样元素,用新元素替换所选元素。为了实现完美的洗牌,需要缓冲区大小大于或等于数据集的完整大小。

例如,如果您的数据集包含10000个元素,但buffer_size设置为1000,则shuffle最初将仅从缓冲区中的前1000个元素中选择一个随机元素。一旦选择一个元素,其在缓冲区中的空间将被下一个(即1001个)元素替换,从而保持1000个元素的缓冲区。而reshuffle_each_iteration控制每次迭代的洗牌顺序是否应该不同。

TensorFlow2.X中,tf.data.Dataset对象是Python的iterables,所以我们也可以用Python的循环遍历:

dataset = tf.data.Dataset.range(3)
dataset = dataset.shuffle(3, reshuffle_each_iteration=True)
list(dataset.as_numpy_iterator())
# [1, 0, 2]
list(dataset.as_numpy_iterator())
# [1, 2, 0]

参数:

参数 意义
buffer_size [tf.int64 /tf.Tensor]表示新数据集将从此数据集中采样的元素数。
seed [可选,tf.int64 /tf.Tensor]表示将用于创建分布的随机种子。
reshuffle_each_iteration [可选,tf.bool]如果为True,则表示每次迭代数据集时都应伪随机地重新洗牌,默认为True
name [可选]tf.data操作的名称

返回值:

返回值 意义
Dataset 一个tf.data.Dataset的数据集。

函数实现:

  def shuffle(self,buffer_size,seed=None,reshuffle_each_iteration=None,name=None):"""Randomly shuffles the elements of this dataset.This dataset fills a buffer with `buffer_size` elements, then randomlysamples elements from this buffer, replacing the selected elements with newelements. For perfect shuffling, a buffer size greater than or equal to thefull size of the dataset is required.For instance, if your dataset contains 10,000 elements but `buffer_size` isset to 1,000, then `shuffle` will initially select a random element fromonly the first 1,000 elements in the buffer. Once an element is selected,its space in the buffer is replaced by the next (i.e. 1,001-st) element,maintaining the 1,000 element buffer.`reshuffle_each_iteration` controls whether the shuffle order should bedifferent for each epoch. In TF 1.X, the idiomatic way to create epochswas through the `repeat` transformation:```pythondataset = tf.data.Dataset.range(3)dataset = dataset.shuffle(3, reshuffle_each_iteration=True)dataset = dataset.repeat(2)# [1, 0, 2, 1, 2, 0]dataset = tf.data.Dataset.range(3)dataset = dataset.shuffle(3, reshuffle_each_iteration=False)dataset = dataset.repeat(2)# [1, 0, 2, 1, 0, 2]```In TF 2.0, `tf.data.Dataset` objects are Python iterables which makes itpossible to also create epochs through Python iteration:```pythondataset = tf.data.Dataset.range(3)dataset = dataset.shuffle(3, reshuffle_each_iteration=True)list(dataset.as_numpy_iterator())# [1, 0, 2]list(dataset.as_numpy_iterator())# [1, 2, 0]``````pythondataset = tf.data.Dataset.range(3)dataset = dataset.shuffle(3, reshuffle_each_iteration=False)list(dataset.as_numpy_iterator())# [1, 0, 2]list(dataset.as_numpy_iterator())# [1, 0, 2]```Args:buffer_size: A `tf.int64` scalar `tf.Tensor`, representing the number ofelements from this dataset from which the new dataset will sample.seed: (Optional.) A `tf.int64` scalar `tf.Tensor`, representing the randomseed that will be used to create the distribution. See`tf.random.set_seed` for behavior.reshuffle_each_iteration: (Optional.) A boolean, which if true indicatesthat the dataset should be pseudorandomly reshuffled each time it isiterated over. (Defaults to `True`.)name: (Optional.) A name for the tf.data operation.Returns:Dataset: A `Dataset`."""return ShuffleDataset(self, buffer_size, seed, reshuffle_each_iteration, name=name)

深入浅出TensorFlow2函数——tf.data.Dataset.shuffle相关推荐

  1. 深入浅出TensorFlow2函数——tf.data.Dataset.batch

    分类目录:<深入浅出TensorFlow2函数>总目录 语法 batch(batch_size, drop_remainder=False, num_parallel_calls=None ...

  2. 深入浅出TensorFlow2函数——tf.constant

    分类目录:<深入浅出TensorFlow2函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.constant · 深入浅出TensorFlow2函数--tf.Ten ...

  3. 深入浅出TensorFlow2函数——tf.reshape

    分类目录:<深入浅出TensorFlow2函数>总目录 语法 tf.reshape(tensor, shape, name=None ) 参数 返回值 返回一个新的形状为shape的tf. ...

  4. 深入浅出TensorFlow2函数——tf.keras.layers.Embedding

    分类目录:<深入浅出TensorFlow2函数>总目录 语法 tf.keras.layers.Embedding(input_dim, output_dim, embeddings_ini ...

  5. 深入浅出TensorFlow2函数——tf.keras.layers.Dense

    分类目录:<深入浅出TensorFlow2函数>总目录 tf.keras.layers.Dense实现操作:output = activation(dot(input, kernel) + ...

  6. tensorflow学习笔记:tf.data.Dataset,from_tensor_slices(),shuffle(),batch()的用法

    tf.data.Dataset.from_tensor_slices: 它的作用是切分传入Tensor的第一个维度,生成相应的dataset. 例1: dataset = tf.data.Datase ...

  7. 记录 之 tensorflow函数:tf.data.Dataset.from_tensor_slices

    tf.data.Dataset.from_tensor_slices(),是常见的数据处理函数,它的作用是将给定的元组(turple).列表(list).张量(tensor)等特征进行特征切片.切片的 ...

  8. tensorflow2数据读取P3: tf.data.Dataset.from_generator通过preprocessing.image.ImageDataGenerator构造Dataset

    tf.data.Dataset.from_generator通过preprocessing.image.ImageDataGenerator构造Dataset 虽然自己定义生成器就可以构建datase ...

  9. TensorFlow数据读取机制:文件队列 tf.train.slice_input_producer和 tf.data.Dataset机制

    TensorFlow数据读取机制:文件队列 tf.train.slice_input_producer和tf.data.Dataset机制 之前写了一篇博客,关于<Tensorflow生成自己的 ...

  10. tensorflow基础:tf.data.Dataset.from_tensor_slices() 与 tf.data.Dataset.from_generator()的异同

    tf.data.Dataset.from_tensor_slices(tensor): -->将tensor沿其第一个维度切片,返回一个含有N个样本的数据集(假设tensor的第一个维度为N). ...

最新文章

  1. 那些年,我们见过的 Java 服务端乱象
  2. 从 “香农熵” 到 “告警降噪” ,如何提升告警精度?
  3. 【javascript高级教程】JavaScript Array(数组) 对象
  4. AIX 常用命令汇总(二)
  5. 量子计算机全世界最新进展,谷歌或于明年公布全球最强大量子计算机
  6. pci内存控制器是什么驱动_以微软的技术实力, win10还会出现硬盘100%占用的问题,为什么呢?...
  7. supervisor、pm2、forever坐下来聊聊
  8. onlaunch 异步_微信小程序之onLaunch与onload异步问题
  9. 已知两点坐标求水平距离_过中心的弦---极坐标
  10. Address already in use: JVM_Bind:8080类似问题解决方法
  11. arcmap拓扑错误检查器不亮_ARCGIS拓扑检查步骤与修正拓扑错误技巧
  12. H5打包成app的在线工具
  13. 年底无心工作?给个摸鱼好去处。中国超级英雄【一方净土】,进来看看嘛
  14. java粘包_Java网络通信基础系列-Netty粘包与拆包
  15. 冒险岛2虚拟机 显示服务器连接失败怎么办 显示TP解决方法
  16. 王者荣耀中的技术,技能冷却原来是这样做的
  17. 百度地图批量精度和维度Java,关于百度地图API批量转换成坐标的方法
  18. maven项目 The superclass javax.servlet.http.HttpServlet was not found on the Jav
  19. 操作系统原理实验(5):内存管理
  20. 湘湘学习之旅 越努力 越幸运

热门文章

  1. Android-live如何利用第三方SDK做一款直播软件
  2. 西门子SMART200 PLC和托利多电子称自由口通讯程序
  3. 创新Sound Blaster Tactic3D Alpha耳机驱动v1.0官方版
  4. python罗盘时钟代码_jQuery css3创意的罗盘时钟代码
  5. 周文强做客《逐梦年代》与主持人李思思讲述创业背后的秘密
  6. Set接口介绍、HashSet源码简要分析
  7. Pintos-斯坦福大学操作系统Project详解-Project1
  8. Shiny-Server的安装和使用教程
  9. Java的环境变量在哪个文件夹_Java设置环境变量
  10. Matplotlib系列(八):嵌入Python Qt界面