keras 双向LSTM

双向LSTM利用到了未来的信息,在一些文本分类和序列预测问题上可以做到比单向LSTM更好的效果,BiLSTM与LSTM相比,多了一个反向计算,同时利用正向方向的数据计算最终输出,关于LSTM的前向计算可以看这里

这里就只简单记录下keras 的BiLSTM参数个数计算,训练部分如下:

model = Sequential()
input_shape = (149,40)
model.add(Bidirectional(LSTM(units=20,return_sequences=True),input_shape=input_shape))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(TimeDistributed(Dense(1, activation='sigmoid')))
# model.add(Dense(1, activation='sigmoid'))# LSTM参数个数计算:ht-1与xt拼接、隐藏单元数、四个门的bias
#                    (20+40)*units*4+20*4
#
#
batch_size = 64
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
model.fit(X_training, Y_training,batch_size=batch_size,epochs=30,validation_data=(x_test, y_test),verbose=1)

LSTM参数中的return_sequences=True表示每个时间步都输出,训练得到的模型如下:

my.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
bidirectional_1 (Bidirection (None, 149, 40)           9760
_________________________________________________________________
dropout_1 (Dropout)          (None, 149, 40)           0
_________________________________________________________________
batch_normalization_1 (Batch (None, 149, 40)           160
_________________________________________________________________
time_distributed_1 (TimeDist (None, 149, 1)            41
=================================================================
Total params: 9,961
Trainable params: 9,881
Non-trainable params: 80
_________________________________________________________________

BiLSTM与LSTM相比就是多了个两倍的关系,summary中的第一层输出为(None, 149, 40),则一个单向LSTM的输出为(None, 149, 20),即对应了训练参数中的units=20,所以参数个数计算也就跟单向LSTM一样了,以上模型中的RNN层参数个数为((40+20)∗20∗4+20∗4)∗2=9760((40+20)∗20∗4+20∗4)∗2=9760((40+20)*20*4+20*4)*2=9760

keras 双向LSTM相关推荐

  1. keras 双向LSTM 简单示例

    示例1: 仅返回各个时刻的状态 import tensorflow.compat.v1 as tf from keras.layers import ConvLSTM2D,TimeDistribute ...

  2. keras实例学习-双向LSTM进行imdb情感分类

    源码:https://github.com/keras-team/keras/blob/master/examples/imdb_bidirectional_lstm.py 及keras中文文档 1. ...

  3. 使用Keras进行深度学习:(六)LSTM和双向LSTM讲解及实践

    ###欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 介绍 长短期记忆(Long Short Term Memor ...

  4. 利用Keras开发用于分类问题的双向LSTM及与LSTM性能的比较

    双向LSTM是传统LSTM的扩展,可以提高序列分类问题的模型性能.在输入序列为时间问题的分类数据上,双向LSTM在输入序列上训练的模型是两个而不是一个LSTM.输入序列中的第一个是原始样本,第二个是输 ...

  5. 基于keras的双层LSTM网络和双向LSTM网络

    1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下: LSTM(units,input_shape,return_sequences=False) un ...

  6. 基于双向LSTM和迁移学习的seq2seq核心实体识别

    http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在" ...

  7. 【NLP】使用堆叠双向 LSTM 进行情感分析

    作者 | SRIVIGNESH_R  编译 | Flin   来源 | analyticsvidhya 情绪分析 情感分析是发现文本数据的情感的过程.情感分析属于自然语言处理中的文本分类.情绪分析将帮 ...

  8. IMDB影评的情感分析任务:双层bi-LSTM模型(双向LSTM)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) IMDB影评的情感分析任务 学习目标 了解影评情感分析任务和I ...

  9. [深度学习] PyTorch 实现双向LSTM 情感分析

    一  前言 情感分析(Sentiment Analysis),也称为情感分类,属于自然语言处理(Natural Language Processing,NLP)领域的一个分支任务,随着互联网的发展而兴 ...

最新文章

  1. 小米半年来最大调整:成立技术委员会,雷军称技术事关生死存亡
  2. mysql mysqlhotcopy_MySQL备份之mysqlhotcopy与注意事项
  3. php如何设定隐藏四位号码,PHP问题:php手机号码中间四位如何隐藏?
  4. HTML5编程实战之二:用动画的形式切换图片
  5. Spring Boot 分布式会话
  6. linux下adb连接不上解决方法
  7. lede旁路由作用_高频旁路电容器作用及工作原理
  8. 飞信php接口 web service
  9. 干货| 364套各类风格毕业设计答辩PPT模板~
  10. matlab simulink教程pdf,Simulink基础入门教程“完整版”.pdf
  11. [CTF]学习资源推荐
  12. Python HackerRank 刷题 Maximum Subarray Sum
  13. 鸿蒙小型系统内核Liteos-a开发指南
  14. 一文搞懂产品中的搜索设计
  15. 若干个进阶SQL 进阶技巧
  16. 前端 javascript 字符编码与解码
  17. premiere介绍和安装方法
  18. 如何免费使用智行VIP抢票
  19. python 动图_历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
  20. add p4 多个文件_p4 选择性上传file

热门文章

  1. 闲鱼底部tab android,Flutter学习笔记--仿闲鱼底部导航栏带有中间凸起图标
  2. 通用爬虫(搜索网站爬虫)
  3. java调用hidl_HIDL - anonmous - 博客园
  4. 微信HOOK 6.获取发送消息CALL
  5. linux yum卸载安装记录
  6. 树莓派:虚拟键盘软件
  7. 毕业设计- 基于Android的校园活动发布平台(带流程图)
  8. scrapyd 启动
  9. OriginPro 8 简单论文作图并且将多个worksheet表画在同一张图以及图的保存
  10. checkbox设置只能单选