deeplearning4j 嵌入层权重更新
deeplearning4j embedding layer weight update
我需要用一个embedding层来对词向量进行编码,所以embedding层的权重本质上就是词向量。显然我不希望这种情况下的权重在反向传播过程中更新。我的问题是,如果设计嵌入层已经禁止权重更新,或者我必须对此做一些特殊的事情?
在这里查看旧问题,
https://github.com/deeplearning4j/deeplearning4j/issues/3118
我认为满足我需要的一种方法是将学习率和偏差设置为 0,即 .biasInit(0.0).learningRate(0.0)
,尽管我认为更好的方法也是 link上面,是用冻结层包裹起来吗?
编辑:
我想我最终会得到如下解决方案,
new FrozenLayer.Builder().layer(new EmbeddingLayer.Builder().nIn(nIn).nOut(nOut).activate(Activate.IDENTITY).biasInit(0.0).build()).build()
我需要用一个embedding层来对词向量进行编码,所以embedding层的权重本质上就是词向量。显然我不希望这种情况下的权重在反向传播过程中更新。我的问题是,如果设计嵌入层已经禁止权重更新,或者我必须对此做一些特殊的事情?
在这里查看旧问题,
https://github.com/deeplearning4j/deeplearning4j/issues/3118
我认为满足我需要的一种方法是将学习率和偏差设置为 0,即 .biasInit(0.0).learningRate(0.0)
,尽管我认为更好的方法也是 link上面,是用冻结层包裹起来吗?
编辑: 我想我最终会得到如下解决方案,
new FrozenLayer.Builder().layer(new EmbeddingLayer.Builder().nIn(nIn).nOut(nOut).activate(Activate.IDENTITY).biasInit(0.0).build()).build()