LSTM调参感悟

青春壹個敷衍的年華 提交于 2019-12-04 06:00:31

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!