如何在Pytorch中应用分层学习率?

时间:2018-08-11 16:27:50

标签: python neural-network deep-learning pytorch

我知道有可能冻结网络中的单个层,例如仅训练预训练模型的最后一层。我正在寻找一种将某些学习率应用于不同层次的方法。

因此,例如对于第一层非常低的学习率0.000001,然后对于随后的每一层逐渐提高学习率。这样最后一层的学习率就达到0.01左右。

在pytorch中有可能吗?知道如何存档吗?

1 个答案:

答案 0 :(得分:17)

我正在这样做:

class EmailConfig {
 public $smtp = array(
    'transport' => 'Smtp',
    'from' => array('admin@mydomain.com' => 'admin'),
    'host' => 'mail.mydomain.com',
    'port' => 25,
    'timeout' => 30,
    'username' => 'admin@mydomain.com',
    'password' => '********',
    'client' => null,
    'log' => false,
    /*********************** changes starts here ************/
    'SMTPSecure' => 'starttls',
    'tls' => true,
    'context'=>array('ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )), 
    /*********************** changes ends here ************/   
    'charset' => 'utf-8',
    'headerCharset' => 'utf-8',
 );
}

在优化器中未指定的其他参数将不会优化。因此,您应该声明所有层或组(或要优化的层)。。如果未指定学习率,它将采用全局学习率(5e-4)。 诀窍是在创建模型时,应为图层命名或将其分组。