如何使用 Tensorflow 使用 Python 标准化数据?

pythonserver side programmingprogrammingtensorflow

我们将使用 flowers 数据集,其中包含数千朵花的图像。它包含 5 个子目录,每个类都有一个子目录。使用 ‘get_file’ 方法下载 flower 数据集后,它将被加载到环境中进行处理。

通过在模型中引入规范化层,可以标准化 flower 数据。此层称为 ‘Rescaling’ 层,使用 ‘map’ 应用于整个数据集方法。

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

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

print("创建了规范化层")
normalization_layer = layer.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/images/classification

输出

创建了规范化层
此层使用 map 函数应用于数据集
0.0 1.0

解释

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

相关文章