我在做一些关于神经网络的实验。最新版本的发行说明说,今后DataSet是提供输入数据的推荐API。在
一般来说,当从外部获取数值时,需要对值的范围进行规范化处理;如果插入诸如长度、质量、速度、日期或时间等原始数字,则产生的问题将是病态的;有必要检查值的动态范围并将其规格化为范围(0,1)
或{
当然,这可以在原始Python中完成。然而,DataSet提供了许多数据转换特性,并鼓励使用这些特性,其理论基础是生成的代码不仅更易于维护,而且运行速度更快。这意味着规范化还应该有一个内置的特性。在
但是,在查看https://www.tensorflow.org/programmers_guide/datasets上的文档时,我没有看到任何关于这方面的内容。我错过什么了吗?推荐的方法是什么?在
我对tensorflow数据集主要思想的理解告诉我,复杂的预处理并不直接适用,因为^{} 专门设计用于流非常大量的数据,更准确地说是张量:
事实上,},需要一个完整的{},并且至少有一个贯穿整个管道。以下采样线:
tf.data.Dataset
与张量一起工作,这意味着要获得数据的任何特定统计信息,例如min
或{。。。如果
dataset
负责预处理,那么不管数据集的大小,只要dataset
负责预处理,就可以快速地提供下一批数据。这就是为什么“逻辑计划”只包括本地转换,这样可以确保数据可以流化,此外,还允许进行转换in parallel。在这并不意味着用
tf.data.Dataset
实现规范化是不可能的,我觉得它从来没有这样做过,因此,它看起来很难看(尽管我不能绝对肯定)。但是,请注意,batch-normalization非常适合这张图片,这是我看到的“不错”选项之一。另一个选择是在numpy中进行简单的预处理,并将结果输入tf.data.Dataset.from_tensor_slices
。这并不会使管道变得更复杂,但根本不会限制您使用tf.data.Dataset
。在相关问题 更多 >
编程相关推荐