深度学习中的迁移学习

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 03:04   11   0

由于通常情况下都不会拥有大量的数据,所以如果我们从随机初始化网络参数开始训练一个全新的网络就会由于训练样本不足而出现过拟合现象。为了改善这种现象,迁移学习将会是不错的选择。

迁移学习有两种常见的做法:一种是以一个在大量数据集上训练好的网络参数作为自己网络参数的初始化参数进行训练;另外一种是冻结预训练网络某些层的参数,随机初始化另外一些层,然后再在自己的数据集上训练。具体来说分为以下两种:

微调的方式:这种方式跟我们正常训练一个网络大致步骤是一样的,就只是在初始化网络参数的部分不是随机的,而是拿一个已经在大型数据集上训练好的网络参数作为初始化。

固定参数的方式:这种方式是固定预训练网络的某些层的参数不变,随机初始化另外一些层的参数。与上面一种方法不同,在训练过程中固定层的参数一直保持不变,只改变那些随机初始化的层的参数。在pytorch中要做到这一点就需要对需要冻结的参数设置requires_grad = False,这样,这些参数在反向传播的过程中就不会进行梯度值的计算。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP