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

作者:沐兮Krystal 时间:2023-01-29 02:57:09 

数据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加载与预处理数据详解实现方法

来源: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
  • asp之家 网络编程 m.aspxhome.com