如何将我的深度学习模型应用于新数据集?

数据挖掘 机器学习 Python 深度学习 喀拉斯 卷积神经网络
2022-01-21 09:17:35

我正在使用 Keras 中的卷积神经网络 (CNN) 进行语义分割(图像像素的多类分类)。

特别是,我将其应用于农作物(植被)的航拍图像。在 Keras 中,我成功开发了一个工作流来为一个特定的数据集(我们称之为数据集rural area #1)分割/分类不同的作物。

我可以应用我训练的 Keras 权重rural area #1来初始化另一个数据集的训练rural area #2吗?如:

model = load_model("weights_ruralarea1.hdf5")

然后我会继续model.fit

rural area #2数据集几乎没有用于训练 CNN 的训练图像。那么使用我的权重rural area #1会成为迁移学习的一种形式吗?还是会是一种微调形式?

1个回答

使用预训练的权重和迁移学习是有区别的。

  1. 当您使用预先训练的权重并为数据集重新训练整个模型中的所有层时,您只是在朝着更好的结果方向更快地收敛。

  2. 如果您只训练上层并锁定所有其他层进行训练,那么您正在实施迁移学习。

对于您手头的问题,我会使用方法1。

如果您希望我详细说明,我们将非常乐意。

这是一个解释如何使用 Keras 进行迁移学习的链接:https ://towardsdatascience.com/transfer-learning-using-keras-d804b2e04ef8