如何使用TensorFlow将增强数据拟合到模型中?


增强模型可以使用‘compile’方法进行编译,该方法也接受验证数据和时期数(训练步骤数)作为参数。

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

我们将使用Keras Sequential API,它有助于构建一个顺序模型,用于处理简单的层堆栈,其中每一层只有一个输入张量和一个输出张量。

包含至少一层卷积层的神经网络称为卷积神经网络。我们可以使用卷积神经网络来构建学习模型。

图像分类器使用keras.Sequential模型创建,数据使用preprocessing.image_dataset_from_directory加载。数据可以高效地从磁盘加载。会识别过拟合并应用技术来减轻它。这些技术包括数据增强和dropout。共有3700张花卉图像。此数据集包含5个子目录,每个类有一个子目录。

分别是雏菊、蒲公英、玫瑰、向日葵和郁金香。

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

当训练样本数量较少时,模型会从训练样本中的噪声或不需要的细节中学习。这会对模型在新样本上的性能产生负面影响。

由于过拟合,模型将无法在新数据集上很好地泛化。有很多方法可以避免过拟合。我们可以使用dropout技术来克服过拟合。通过在网络中引入dropout可以减少过拟合。这被认为是一种正则化形式。这有助于模型接触数据的更多方面,从而帮助模型更好地泛化。以下是一个示例

示例

print("Train the model to fit the given data")
epochs = 15
history = model.fit(
   train_ds,
   validation_data=val_ds,
   epochs=epochs
)

代码来源 −https://tensorflowcn.cn/tutorials/images/classification

输出

Train the model to fit the given data
Epoch 1/15
92/92 [==============================] - 104s 1s/step - loss: 1.5371 - accuracy: 0.3103 - val_loss: 1.1487 - val_accuracy: 0.5313
Epoch 2/15
92/92 [==============================] - 102s 1s/step - loss: 1.1414 - accuracy: 0.5087 - val_loss: 1.3204 - val_accuracy: 0.5286
Epoch 3/15
92/92 [==============================] - 102s 1s/step - loss: 1.0260 - accuracy: 0.5991 - val_loss: 0.9823 - val_accuracy: 0.6281
Epoch 4/15
92/92 [==============================] - 103s 1s/step - loss: 0.9431 - accuracy: 0.6466 - val_loss: 0.9937 - val_accuracy: 0.6417
Epoch 5/15
92/92 [==============================] - 104s 1s/step - loss: 0.8294 - accuracy: 0.6706 - val_loss: 0.8365 - val_accuracy: 0.6866
Epoch 6/15
92/92 [==============================] - 103s 1s/step - loss: 0.7584 - accuracy: 0.7101 - val_loss: 0.8471 - val_accuracy: 0.6717
Epoch 7/15
92/92 [==============================] - 102s 1s/step - loss: 0.7323 - accuracy: 0.7225 - val_loss: 0.7949 - val_accuracy: 0.6853
Epoch 8/15
92/92 [==============================] - 104s 1s/step - loss: 0.7197 - accuracy: 0.7168 - val_loss: 0.8422 - val_accuracy: 0.6839
Epoch 9/15
92/92 [==============================] - 103s 1s/step - loss: 0.7209 - accuracy: 0.7229 - val_loss: 0.7502 - val_accuracy: 0.7193
Epoch 10/15
92/92 [==============================] - 104s 1s/step - loss: 0.6334 - accuracy: 0.7590 - val_loss: 0.8248 - val_accuracy: 0.7016
Epoch 11/15
92/92 [==============================] - 104s 1s/step - loss: 0.6052 - accuracy: 0.7737 - val_loss: 0.7400 - val_accuracy: 0.7153
Epoch 12/15
92/92 [==============================] - 104s 1s/step - loss: 0.5713 - accuracy: 0.7831 - val_loss: 0.7424 - val_accuracy: 0.7098
Epoch 13/15
92/92 [==============================] - 105s 1s/step - loss: 0.5627 - accuracy: 0.7875 - val_loss: 0.7028 - val_accuracy: 0.7275
Epoch 14/15
92/92 [==============================] - 103s 1s/step - loss: 0.5254 - accuracy: 0.8029 - val_loss: 0.6900 - val_accuracy: 0.7371
Epoch 15/15
92/92 [==============================] - 103s 1s/step - loss: 0.5187 - accuracy: 0.7984 - val_loss: 0.7839 - val_accuracy: 0.7153

解释

  • 模型经过训练以拟合训练数据。
  • 训练进行了15个步骤/迭代/时期。
  • 这是借助‘fit’方法完成的。

更新于:2021年2月22日

81 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告