Keras 应用程序(迁移学习)
Keras Applications (Transfer Learning)
我是一名学生,目前正在自学深度学习。在这里想请教一下关于迁移学习的问题
比如MobileNetv2(https://keras.io/api/applications/mobilenet/#mobilenetv2-function),如果weights参数设置为None,那么我不做传输learning 因为权重是随机初始化的。如果我想做迁移学习,那么我应该将权重参数设置为imagenet。这个概念正确吗?
关于深度学习的澄清和解释
是的,当您使用随机值初始化权重时,您只是在使用架构并从头开始训练模型。迁移学习的目标是使用另一个训练模型先前获得的知识来获得更好的结果或使用更少的计算资源。
迁移学习有不同的使用方式:
- 您可以冻结基础模型的学习权重,并根据您的问题替换模型的最后一层,只训练最后一层
- 您可以从学习的权重开始,fine-tune它们(让它们在学习过程中发生变化)。许多人这样做是因为有时它可以使训练更快并给出更好的结果,因为权重已经包含了很多信息。
- 您可以使用第一层来提取颜色、边缘、圆圈等基本特征,然后在它们之后添加所需的层。通过这种方式,您可以使用您的资源来学习 high-level 功能。
案例比较多,希望能给大家一个参考[=10=]
我是一名学生,目前正在自学深度学习。在这里想请教一下关于迁移学习的问题
比如MobileNetv2(https://keras.io/api/applications/mobilenet/#mobilenetv2-function),如果weights参数设置为None,那么我不做传输learning 因为权重是随机初始化的。如果我想做迁移学习,那么我应该将权重参数设置为imagenet。这个概念正确吗?
关于深度学习的澄清和解释
是的,当您使用随机值初始化权重时,您只是在使用架构并从头开始训练模型。迁移学习的目标是使用另一个训练模型先前获得的知识来获得更好的结果或使用更少的计算资源。
迁移学习有不同的使用方式:
- 您可以冻结基础模型的学习权重,并根据您的问题替换模型的最后一层,只训练最后一层
- 您可以从学习的权重开始,fine-tune它们(让它们在学习过程中发生变化)。许多人这样做是因为有时它可以使训练更快并给出更好的结果,因为权重已经包含了很多信息。
- 您可以使用第一层来提取颜色、边缘、圆圈等基本特征,然后在它们之后添加所需的层。通过这种方式,您可以使用您的资源来学习 high-level 功能。
案例比较多,希望能给大家一个参考[=10=]