LSTM调参感悟
1. 一定要对数据进行归一化的预处理 train -= np.mean(train, axis = 0) # zero-center train /= np.std(train, axis = 0) # normalize test -= np.mean(test,axis=0) test /= np.std(test,axis=0) 2. 要用正交化初始化lstm 的weight值,如果可能的话,也可以将gate的bias设为0 def init_weight(self): for name, param in self.lstm.named_parameters(): if 'bias' in name: nn.init.constant(param, 0.0) print('\nbias init done') elif 'weight' in name: nn.init.orthogonal(param) print('\nweight init done') 3. 可以在定义的时候加入dropout,一般设为0.5 4. batch_size不要设太大,我设的8感觉就不错(当然也有人说要大些,见仁见智) 5.learning_rate一般取0.001 来源: CSDN 作者: xuzhaoqingbuaa 链接: https://blog.csdn.net