前言
目前人工智能已经融入到我们的生活,大数据模型也是层出不穷。那我们就学习一些简单的模型设置。
干货
代码
# This is the original BiLSTM layer setup,
def build_bilstm(input_layer,last_sequences = False):
lstm = Bidirectional(LSTM(18,return_sequences = True,dropout=0.1))(input_layer)
lstm = LayerNormalization()(lstm)
lstm = Bidirectional(LSTM(36,return_sequences = True,dropout=0.1))(lstm)
lstm = LayerNormalization()(lstm)
lstm = Bidirectional(LSTM(144,return_sequences = last_sequences,dropout=0.1))(lstm)
lstm = LayerNormalization()(lstm)
return lstm
解释
- 这里面
input_layer
需要自己去设计,如何切数据请根据自己的情况来设置;- 你也可以参考我上一个CNN帖子,把它俩串起来;
Bidirectional()
是双向函数,BiLSTM的Bi,举例:Bicycle就是自行车两轮;- 里面再套个
LSTM()
就是BiLSTM了,似乎不太难理解哈; - 如果你不想双相,就把
Bidirectional()
函数去掉,改为单向传统LSTM;
- 里面再套个
- 参数
return_sequences =
,中间层的请设置为True,最后一层是False,表示收尾;- 可以参考网上的学习内容来理解这个参数;
- 由于我们创建了这么多layer数据,建议随机剔除一些来避免过拟合:
- 当
LSTM(x)
参数越来越大,建议参数dropout = 【rate】
逐渐调大,或者像我一样,10%损失,根据自己的模型来调整,个人不建议调太大; - 建议
LSTM(x)
参数以倍数形式增长,和CNN帖子相似;
- 当
- 建议把每层的数据进行标准化
LayerNormalization()
; - 还想加啥函数请自行调整,DL这玩意儿每个人有每个人的理解和需求;
- 需要导入什么库请自己搜吧,我也懒得列出来了。XD
结语
希望大家有所收获,有不明白的欢迎大家留言。