我需要使用嵌入层来对单词向量进行编码,因此嵌入层的权重基本上是单词向量。显然,我不希望在这种情况下权重在反向传播期间更新。我的问题是,如果逐层嵌入已经禁止重量更新,或者我必须对它做一些特别的事情?
答案 0 :(得分:0)
在这里看一个老问题,
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()