tf.data.Dataset.from_tensor_slices中的shuffle()、repeat()、batch()用法

引用库文件

from __future__ import absolute_import, division, print_function, unicode_literals
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow import feature_column
from tensorflow.keras import layers
from sklearn.model_selection import train_test_split

加载数据集,生成数据帧资源句柄

# 将heart.csv数据集下载并加载到数据帧中
path_data = "E:/pre_data/heart.csv"
dataframe = pd.read_csv(path_data)

将pandas dataframe 数据格式转变为 tf.data 格式的数据集形式

# 拷贝数据帧,id(dataframe)!=id(dataframe_new)
 dataframe_new = dataframe.copy()
 # 从dataframe_new数据中获取target属性
labels = dataframe_new.pop(‘target‘)
# 要构建Dataset内存中的数据
ds = tf.data.Dataset.from_tensor_slices((dict(dataframe_new), labels))
# 将数据打乱的混乱程度
ds = ds.shuffle(buffer_size=len(dataframe_new))
# 从数据集中取出数据集的个数
ds = ds.batch(100)
# 指定数据集重复的次数
ds = ds.repeat(2)

ds 中有shuffle、batch、repeat三个方法;具体区别如下

shuffle:

tensorflow中的数据集类Dataset有一个shuffle方法,用来打乱数据集中数据顺序,训练时非常常用。其中shuffle方法有一个参数buffer_size,非常令人费解,文档的解释如下:

原文地址:https://www.cnblogs.com/gengyi/p/11107492.html

时间: 2024-10-19 15:56:15

tf.data.Dataset.from_tensor_slices中的shuffle()、repeat()、batch()用法的相关文章

python3 zip 与tf.data.Data.zip的用法

###python自带的zip函数 与 tf.data.Dataset.zip函数 功能用法相似 ''' zip([iterator1,iterator2,]) 将可迭代对象中对应的元素打包成一个元祖,返回有这些元祖组成的对象,用list把这个对象转化成列表 ''' a=[1,2,3] b = [4,5,6] c = [7,8,9,10,11] res1 = zip(a,b) res2 = zip(a,c) print('返回一个对象%s,用list转化成列表:'%res1,list(res1)

tensorflow-读写数据tf.data(2)

从简单的.可重用的部分构建复杂的输入管道. 例如,图像模型的管道可以聚合分布式文件系统中文件中的数据,对每个图像应用随机扰动,并将随机选择的图像合并成一批进行训练.文本模型的管道可能包括从原始文本数据中提取符号,将它们转换为嵌入查找表的标识符,以及将不同长度的序列批处理在一起. tf.data API使处理大量数据.不同的数据格式和复杂的转换变得容易. tf.data.Dataset表示一个元素序列,其中每个元素包含一个或多个张量对象.例如,在图像管道中,元素可能是单个训练示例,其中有一对张量表

Hadoop学习笔记—10.Reduce阶段中的Shuffle过程

一.回顾Reduce阶段三大步凑 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步凑,其中在Reduce阶段总共三个步凑,如下图所示: 其中,Step2.1就是一个Shuffle操作,它针对多个map任务的输出按照不同的分区(Partition)通过网络复制到不同的reduce任务节点上,这个过程就称作为Shuffle. PS:Hadoop的shuffle过程就是从map端输出到reduce端输入之间的过程,这一段应该是Hadoop中最核心的部分,因为涉及到Had

SQL Server 查看数据库在数据缓存(data cache)中占用的空间大小

1 use master 2 go 3 select * from sys.dm_os_buffer_descriptors 4 go 5 6 --查看数据库在数据缓存(data cache)中占用的空间大小 7 --由于每个数据页对应动态管理视图(dynamic management view,DMV)中的一行,为128 字节,为1/8个千字节(KB) 8 --1字节(Byte)=8位(Bit) 9 --1千字节(KB)=1024字节(Byte) 10 --1兆(MB)=1024千字节(KB)

java 静态导入、System类、Date类、Runtime类、Calendar类、Collections类中的shuffle方法、Math类

/* JDK1.5版本新特性(续):静态导入 注意:当类名重名时,需要指定具体的包名: 当方法名重名时,需要指定具体的类名. */ import java.util.*; import static java.util.Arrays.*;//导入Arrays工具类中的所有静态成员. import static java.lang.System.*;//导入了System类中所有的静态成员,注意System类中的成员都是静态的. class StaticImport { public static

同时替换.data与栈中的Cookie突破GS

原理简述 替换.data中保存的数值为0x909090,替换栈中的数值为0x909090 xor ebp(所在函数帧的),溢出"正面绕过"GS main函数特点:距离ret近,而且有三个参数 gs过程1,gs原理简述.从.data中取出cookie(cookie_ori),运算之后放入栈中成为cookie_now,这里cookie_ori在.data中的存放地址是0x40b004,放入栈中0x12ff5c.反汇编指令如下图. gs过程2,修改.data中的cookie,反汇编如下: 之

Spark中的Shuffle机制

Spark中的shuffle是在干嘛? Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD.也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不同的分区. 但这只是shuffle的过程,却不是shuffle的原因.为何需要shuffle呢? Shuffle和Stage 在分布式计算框架中,比如map-reduce,数据本地化是一个很重要的考虑,即计算需要被分发到数据所在的位置,从而减少数据的移动,提高运行效率. Map-Reduce的输入数

Hadoop学习之路(二十三)MapReduce中的shuffle详解

概述 1.MapReduce 中,mapper 阶段处理的数据如何传递给 reducer 阶段,是 MapReduce 框架中 最关键的一个流程,这个流程就叫 Shuffle 2.Shuffle: 数据混洗 ——(核心机制:数据分区,排序,局部聚合,缓存,拉取,再合并 排序) 3.具体来说:就是将 MapTask 输出的处理结果数据,按照 Partitioner 组件制定的规则分发 给 ReduceTask,并在分发的过程中,对数据按 key 进行了分区和排序 MapReduce的Shuffle

[Oracle维护工程师手记系列]Data Guard Broker中改属性是否需要两侧分别执行?

Data Guard Broker中改属性是否需要两侧分别执行? Data Guard Broker有一些属性,可以通过 show configuration 看到.我有时会想,这些个属性,是否是分别属于primary 和 standby,如果想要修改,是否需要分别登陆到primary 和 standby ,来分别修改呢? 这也是很多客户经常有的疑问.故此我进行了如下的实验. 先看看primary 端的 属性值: -bash-4.1$ dgmgrl /DGMGRL for Linux: Vers