数据集规范化输入值的范围

2024-06-11 06:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一些关于神经网络的实验。最新版本的发行说明说,今后DataSet是提供输入数据的推荐API。在

一般来说,当从外部获取数值时,需要对值的范围进行规范化处理;如果插入诸如长度、质量、速度、日期或时间等原始数字,则产生的问题将是病态的;有必要检查值的动态范围并将其规格化为范围(0,1)或{}。在

当然,这可以在原始Python中完成。然而,DataSet提供了许多数据转换特性,并鼓励使用这些特性,其理论基础是生成的代码不仅更易于维护,而且运行速度更快。这意味着规范化还应该有一个内置的特性。在

但是,在查看https://www.tensorflow.org/programmers_guide/datasets上的文档时,我没有看到任何关于这方面的内容。我错过什么了吗?推荐的方法是什么?在


Tags: 数据版本api时间质量动态数字神经网络
1条回答
网友
1楼 · 发布于 2024-06-11 06:38:29

我对tensorflow数据集主要思想的理解告诉我,复杂的预处理并不直接适用,因为^{}专门设计用于非常大量的数据,更准确地说是张量:

A Dataset can be used to represent an input pipeline as a collection of elements (nested structures of tensors) and a "logical plan" of transformations that act on those elements.

事实上,tf.data.Dataset张量一起工作,这意味着要获得数据的任何特定统计信息,例如min或{},需要一个完整的{},并且至少有一个贯穿整个管道。以下采样线:

iterator = dataset.make_one_shot_iterator()
batch_x, batch_y = iterator.get_next()

。。。如果dataset负责预处理,那么不管数据集的大小,只要dataset负责预处理,就可以快速地提供下一批数据。这就是为什么“逻辑计划”只包括本地转换,这样可以确保数据可以流化,此外,还允许进行转换in parallel。在

这并不意味着用tf.data.Dataset实现规范化是不可能的,我觉得它从来没有这样做过,因此,它看起来很难看(尽管我不能绝对肯定)。但是,请注意,batch-normalization非常适合这张图片,这是我看到的“不错”选项之一。另一个选择是在numpy中进行简单的预处理,并将结果输入tf.data.Dataset.from_tensor_slices。这并不会使管道变得更复杂,但根本不会限制您使用tf.data.Dataset。在

相关问题 更多 >