如何使用 Tensorflow 来标准化花卉数据集?

pythonserver side programmingprogrammingtensorflow

数据标准化是指将数据集缩放到一定水平,以便所有特征都可以使用等效单位表示。重新缩放层是使用 Keras 模块中的‘Rescaling’方法构建的。使用‘map’将该层应用于整个数据集方法。

阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?

我们将使用 flowers 数据集,其中包含数千朵花的图像。它包含 5 个子目录,每个类都有一个子目录。

我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 有助于在浏览器上运行 Python 代码,并且不需要任何配置,并且可以免费访问 GPU(图形处理单元)。 Colaboratory 已在 Jupyter Notebook 上构建。

from tensorflow.keras import layer
print("使用重新缩放层对数据进行标准化")
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)

print("可通过在数据集上调用 map 函数来应用此层")
normalized_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))
image_batch, labels_batch = next(iter(normalized_ds))
first_image = image_batch[0]
print(np.min(first_image), np.max(first_image))

代码来源:https://www.tensorflow.org/tutorials/load_data/images

输出

使用重缩放层对数据进行标准化
可以通过在数据集上调用 map 函数来应用此层
0.0 0.96902645

解释

  • RGB 通道值在 0 到 255 的范围内。
  • 这对神经网络来说并不好。
  • 其目的是使输入数据尽可能小。
  • 图像中的值已标准化,范围为 0 和 1。
  • 这是在重缩放的帮助下完成的层。
  • 另一种方法是将此重新缩放层包含在模型定义中,这将简化部署。

相关文章