如何使用 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 函数将该层应用于数据集来完成。
- 另一种方法是在模型定义中包含该层。
- 这将简化部署过程。
广告