我的 LSTM 网络非常慢。优化什么?
My LSTM network is very slow. What to optimize?
我有以下 deeplearning4j 网络(和其他类似网络)
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.updater(new Adam.Builder().learningRate(2e-2).build())
.l2(1e-5)
.weightInit(WeightInit.XAVIER)
.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue).gradientNormalizationThreshold(1.0)
.list()
.layer(0, new LSTM.Builder().nIn(vectorSize).nOut(256)
.activation(Activation.TANH).build())
.layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX)
.lossFunction(LossFunctions.LossFunction.MCXENT).nIn(256).nOut(2).build())
.build();
不幸的是训练很慢。我的矢量大小是 400。我有大量的样本。你会建议优化什么以加快训练速度?我应该减少内层尺寸吗?谢谢
根据我自己的经验,我肯定会首先尝试 Activation.SOFTSIGN
作为您的激活函数。它不会很快饱和,提高了它对消失梯度的鲁棒性。
我有以下 deeplearning4j 网络(和其他类似网络)
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.updater(new Adam.Builder().learningRate(2e-2).build())
.l2(1e-5)
.weightInit(WeightInit.XAVIER)
.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue).gradientNormalizationThreshold(1.0)
.list()
.layer(0, new LSTM.Builder().nIn(vectorSize).nOut(256)
.activation(Activation.TANH).build())
.layer(1, new RnnOutputLayer.Builder().activation(Activation.SOFTMAX)
.lossFunction(LossFunctions.LossFunction.MCXENT).nIn(256).nOut(2).build())
.build();
不幸的是训练很慢。我的矢量大小是 400。我有大量的样本。你会建议优化什么以加快训练速度?我应该减少内层尺寸吗?谢谢
根据我自己的经验,我肯定会首先尝试 Activation.SOFTSIGN
作为您的激活函数。它不会很快饱和,提高了它对消失梯度的鲁棒性。