“让Keras更酷一些!”:分层的学习率和自由的梯度( 二 )

----“让Keras更酷一些!”:分层的学习率和自由的梯度//---- http://

“让Keras更酷一些!”:分层的学习率和自由的梯度

高举“让 Keras 更酷一些!”大旗 , 让 Keras 无限可能 。

今天我们会用 Keras 做到两件很重要的事情:分层设置学习率和灵活操作梯度 。

首先是分层设置学习率 , 这个用途很明显 , 比如我们在 fine tune 已有模型的时候 , 有些时候我们会固定一些层 , 但有时候我们又不想固定它 , 而是想要它以比其他层更低的学习率去更新 , 这个需求就是分层设置学习率了 。

对于在 Keras 中分层设置学习率 , 网上也有一定的探讨 , 结论都是要通过重写优化器来实现 。 显然这种方法不论在实现上还是使用上都不友好 。

然后是操作梯度 。 操作梯度一个最直接的例子是梯度裁剪 , 也就是把梯度控制在某个范围内 , Keras 内置了这个方法 。 但是 Keras \n内置的是全局的梯度裁剪 , 假如我要给每个梯度设置不同的裁剪方式呢?甚至我有其他的操作梯度的思路 , 那要怎么实施呢?不会又是重写优化器吧?

推荐阅读