我知道有可能冻结网络中的单个层,例如仅训练预训练模型的最后一层。我正在寻找一种将某些学习率应用于不同层次的方法。
因此,例如对于第一层非常低的学习率0.000001,然后对于随后的每一层逐渐提高学习率。这样最后一层的学习率就达到0.01左右。
在pytorch中有可能吗?知道如何存档吗?
答案 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)。 诀窍是在创建模型时,应为图层命名或将其分组。