我的LSTM网络非常慢要优化什么?

问题描述

我有以下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作为激​​活功能。它不会很快饱和,从而提高了对消失梯度的鲁棒性。