Tensorflow加载与预处理数据详解实现方法
作者:沐兮Krystal 时间:2023-01-29 02:57:09
数据API
数据集方法不会修改数据集,而是创建新数据集。
可通过调用 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)
来源:https://blog.csdn.net/GW_Krystal/article/details/127885412
标签:Tensorflow,加载,预处理
0
投稿
猜你喜欢
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021-03-29 18:34:12
php和asp利用Shell.Application来执行程序的代码
2024-04-29 13:58:02
MyEclipse连接MySQL数据库报错解决办法
2024-01-18 03:31:37
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2024-02-26 10:24:28
pytorch 如何把图像数据集进行划分成train,test和val
2023-12-26 15:28:10
javascript实现下雪效果【实例代码】
2024-05-25 15:18:40
Windows下安装MySQL 5.7.17压缩版中遇到的坑
2024-01-21 17:06:54
python 模拟登陆163邮箱
2021-08-03 09:30:11
分析语音数据增强及python实现
2021-02-02 07:25:43
python迭代器常见用法实例分析
2023-07-12 02:40:54
详解Python如何求不同分辨率图像的峰值信噪比
2023-03-25 09:51:58
python3利用tcp实现文件夹远程传输
2023-09-03 07:44:38
MySQL5.7.10 安装文档教程详解
2024-01-19 00:37:58
vue3封装侧导航文字骨架效果组件
2024-04-27 16:10:03
基于ThinkPHP删除目录及目录文件函数
2024-06-05 09:46:36
漫谈前端开发中的团队合作
2009-02-05 21:02:00
微信小程序录音实现功能并上传(使用node解析接收)
2024-04-16 08:46:56
vue实现右键弹出菜单
2024-05-21 10:17:41
Python3.10新特性之match语句示例详解
2023-07-23 05:17:23
ASP下检测图片木马的函数代码
2011-02-05 10:43:00