Tensorflow加载与预处理数据详解实现方法

2022-11-21 34阅读 0评论

数据API

?=

数据集方法不会修改数据集,而是创建新数据集。

Tensorflow加载与预处理数据详解实现方法

可通过调用 Map() 方法将转换应用于每个元素

dataset = dataset.map(Lambda x: x * 2)

乱序数据

交织来自多个文件的行

list_files() 函数返回一个乱序的文件路径的数据集。

filepath_dataset = tf.data.Dataset.list_files(train_filepaths, seed=42)

一次读取5个文件,并交织它们的行。

n_readers = 5 dataset = filepath_dataset.interleave( 	lambda filepath: tf.data.TextLineDataset(filepath).skip(1), 	cycle_length=n_readers) 

预处理数据

X_mean, X_sTD = [...] # 每个特征的均值和标准差 n_inpuTS = 8 # 对应8个特征 def prepROCess(line): 	defs = [0.] * n_inputs + [tf.constant([], dtype=tf.float32)] # csv中每一列的默认值的数组 	fields = tf.io.decode_CSV(line, record_defaults=defs)  	# line 是要解析的行,record_defaults 是一个包含csv文件每一列的默认值的数组 	x = tf.stack(fields[:-1]) 	y = tf.stack(fields[-1:]) 	return (x - X_mean) / X_std, y

我们在除最后一个(目标值)之外的所有张量上调用 tf.stack() ,从而将这些张量堆叠到一维度组中。然后对目标值执行相同的操作

合并在一起

def csv_reader_dataset(filepaths, repeat=1, n_readers=5, 					   n_read_threads=None, shuffle_buffer_size=10000, 					   n_parse_threads=5, batch_size=32): 	dataset = tf.data.Dataset.list_files(filepaths) 	dataset = filepath_dataset.interleave( 		lambda filepath: tf.data.TextLineDataset(filepath).skip(1), 		cycle_length=n_readers, num_parallel_calls=n_read_threads) 	dataset = dataset.map(preprocess, num_parallel_calls=n_parse_threads) 	dataset = dataset.shuffle(shuffle_buffer_size).repeat(repeat) 	return dataset.BATch(batch_size).prefetch(1) 

Tensorflow加载与预处理数据详解实现方法

到此这篇关于Tensorflow加载与预处理数据详解实现方法的文章就介绍到这了,更多相关Tensorflow加载与预处理内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,34人围观)

还没有评论,来说两句吧...