迁移学习是指将在一个任务上训练好的模型的知识迁移到另一个相关任务上的技术。在机器学习中,训练一个深度神经网络需要大量的数据和计算资源,但在现实世界中,很少有人可以从头开始训练一个全新的深度神经网络。迁移学习允许我们利用已经在大规模数据集上训练过的模型,将其特征和知识应用于新的任务,从而加速模型的训练过程。
在这个教程中,我们将使用TensorFlow实现迁移学习,演示如何使用预训练模型来解决自定义的图像分类问题。
在9 | TensorFlow 实现 猫狗识别 函数式API, 在 MobileNet V2 基础模型的顶部训练了一些层。预训练网络的权重在训练过程中未更新。
进一步提高性能的一种方式是在训练(或“微调”)预训练模型顶层的权重的同时,另外训练您添加的分类器。训练过程将强制权重从通用特征映射调整为专门与数据集相关联的特征。
另外,应尝试微调少量顶层而不是整个 MobileNet 模型。在大多数卷积网络中,层越高,它的专门程度就越高。前几层学习非常简单且通用的特征,这些特征可以泛化到几乎所有类型的图像。随着向上层移动,这些特征越来越特定于训练模型所使用的数据集。微调的目标是使这些专用特征适应新的数据集,而不是覆盖通用学习。
是解冻 base_model 并将底层设置为不可训练。随后,应该重新编译模型(使这些更改生效的必需操作),然后恢复训练。
# 解冻基础模型并进行微