我需要使用嵌入层来对单词向量进行编码,因此嵌入层的权重本质上是单词向量。显然,我不希望这种情况下的权重在反向传播期间进行更新。我的问题是,按设计嵌入层是否已经禁止了权重更新,还是我必须对此做一些特别的事情?
在这里看一个老问题,
https://github.com/deeplearning4j/deeplearning4j/issues/3118
我认为满足我需要的一种方法是将学习率以及偏倚设置为0,即.biasInit(0.0).learningRate(0.0)
,尽管我认为更好的方法(也可以从上面的链接中得到建议)是使用冻结层将其包裹起来?
编辑:我想我最终会得到如下解决方案,
new FrozenLayer.Builder().layer(new EmbeddingLayer.Builder().nIn(nIn).nOut(nOut).activate(Activate.IDENTITY).biasInit(0.0).build()).build()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句