Tensorflow 如何配置花卉数据集以提高性能?

pythonserver side programmingprogrammingtensorflow

创建模型时,花卉数据集会给出一定百分比的准确度。如果需要配置模型以提高性能,则缓冲区预取将与重新缩放层一起使用。通过将重新缩放层作为 Keras 模型的一部分,将此层应用于数据集上的 Keras 模型。

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

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

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

AUTOTUNE = tf.data.AUTOTUNE

train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

num_classes = 5
print("构建顺序模型")
model = tf.keras.Sequential([
   layers.experimental.preprocessing.Rescaling(1./255),
   layers.Conv2D(32, 3,activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Flatten(),
    layers.Dense(128, activation='relu'),
   layers.Dense(num_classes)
])

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

输出

构建顺序模型

解释

  • 使用缓冲预取,以便可以从磁盘获取数据而不会阻塞 I/O。
  • 这是加载数据时的重要步骤。
  • ".cache()"方法有助于在第一个时期从磁盘加载图像后将其保存在内存中。
  • 这可确保数据集在训练模型时不会成为障碍。
  • 如果数据集太大而无法放入内存,则可以使用相同的方法创建高性能磁盘缓存。
  • ".prefetch()"方法在数据训练时将数据预处理和模型执行操作重叠。

相关文章