【问题标题】:how does one normalize a TensorFlow `Dataset` pipeline?如何规范化 TensorFlow 的“数据集”管道?
【发布时间】:2020-07-07 09:52:29
【问题描述】:

我在 TensorFlow Dataset 管道中有我的数据集,我想知道如何对其进行规范化,问题是为了规范化您需要加载整个数据集,这与 TensorFlow @987654322 完全相反@ 是为了。

那么究竟如何规范化 TensorFlow Dataset 管道?以及如何将其应用于新数据? (即用于做出新预测的数据)

【问题讨论】:

    标签: python tensorflow machine-learning keras tensorflow-datasets


    【解决方案1】:

    您不需要一次标准化整个数据集。

    根据您使用的数据类型,您可以使用 .map() 函数,其唯一目的是规范您正在使用的特定批次数据(例如,将图像中的每个像素除以 255.0。

    例如,您可以使用map(preprocess_function_1).map(preprocess_function_2).batch(batch_size),其中 preprocess_function_1 和 preprocess_function_2 是预处理张量的两个不同函数。如果您使用.batch(batch_size),那么预处理函数将按顺序应用于batch_size 元素数量,您无需在使用tf.data.Dataset() 之前更改整个数据集

    【讨论】:

      【解决方案2】:

      除了遍历整个数据集并收集您需要的信息之外别无他法。这就是他们在 Tensorflow 文档 examples 中所做的事情。例如,他们在这里获取所有单词以标记输入:

      tokenizer = tfds.features.text.Tokenizer()
      
      vocabulary_set = set()
      for text_tensor, _ in all_labeled_data:
        some_tokens = tokenizer.tokenize(text_tensor.numpy())
        vocabulary_set.update(some_tokens)
      
      vocab_size = len(vocabulary_set)
      

      对于标准化,您需要遍历所有数据并跟踪平均值、最大值等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-06
        • 2023-03-26
        • 2015-08-21
        • 2020-05-29
        • 2019-03-27
        • 2014-09-06
        • 2022-08-17
        • 1970-01-01
        相关资源
        最近更新 更多