如何使用 Python 中的 TensorFlow 对数据进行标准化?


我们将使用花卉数据集,其中包含数千朵花的图像。它包含 5 个子目录,每个类别都有一个子目录。一旦使用“get_file”方法下载了花卉数据集,它将被加载到环境中以供使用。

可以通过在模型中引入归一化层来标准化花卉数据。此层称为“Rescaling”层,它使用“map”方法应用于整个数据集。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协作创建神经网络?

我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助通过浏览器运行 Python 代码,并且无需任何配置即可免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

print("Normalization layer is created ")
normalization_layer = layers.experimental.preprocessing.Rescaling(1./255)
print("This layer is applied to dataset using map function ")
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://tensorflowcn.cn/tutorials/images/classification

输出

Normalization layer is created
This layer is applied to dataset using map function
0.0 1.0

解释

  • RGB 通道值在 [0, 255] 范围内。
  • 这对于神经网络来说并不理想。
  • 根据经验,确保输入值较小。
  • 因此,我们可以将值标准化为介于 [0, 1] 之间。
  • 这是通过使用 Rescaling 层完成的。
  • 可以通过调用 map 函数将该层应用于数据集来完成。
  • 另一种方法是在模型定义中包含该层。
  • 这将简化部署过程。

更新于: 2021 年 2 月 20 日

309 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告