如何使用 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。
- 这是在重缩放的帮助下完成的层。
- 另一种方法是将此重新缩放层包含在模型定义中,这将简化部署。