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. (volatile int)(x)与*(volatile int *)(x)
  2. CentOS7.X的系统管理、安全设置及系统优化思路
  3. 读《程序是怎样跑起来的》第5章
  4. 线程:ReentrantReadWriteLock类
  5. HALCON学习之旅(五)
  6. 朴素贝叶斯算法matlab实现以及EM算法
  7. PForDelta的介绍论文
  8. 如何在 iPhone、iPad 和 Mac 上压缩照片?
  9. linux 编译cgal,Linux环境下CGAL配置
  10. Java Web 2.1.4 HTML 表单标签与表单设计 (实例)
  11. 找不到注册表中HKEY_CURRENT_USER的问题
  12. php radio是什么意思,radio是什么意思_radio在线翻译_英语_读音_用法_例句_海词词典...
  13. Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
  14. 单向链表与双向链表的区别
  15. MICCAI 2022 | mmFormer:Multimodal Medical Transformer for Incomplete Multimodal Learning of BTS
  16. PTA 7-43 币值转换 (20 分)
  17. 可降低75%的系统集成成本!安波福引领“智能汽车架构”升级
  18. TensorRT报Cuda initialization failure with error
  19. 时间序列——滑动窗口
  20. 【论文笔记之 MDF】Multidelay Block Frequency Domain Adaptive Filter

热门文章

  1. python生成和读取二维码
  2. JavaNIO实现ZIP解压
  3. OHEM--online negative example mining
  4. 蚂蚁一面:hashCode 和对象的内存地址有什么关系?
  5. 启动tomcat时日志出现乱码
  6. 电路复习——正弦稳态交流电路分析
  7. python+opencv最简单的人脸识别入门
  8. 全志平台Android系统WIFI架构工作流程分析
  9. python如何播放一段mp3音乐或者如何播放铃声
  10. ueditor编辑器插入的图片宽高超过了编辑器的宽高就会有个超出范围的外边线