keras 双向LSTM
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相关推荐
- keras 双向LSTM 简单示例
示例1: 仅返回各个时刻的状态 import tensorflow.compat.v1 as tf from keras.layers import ConvLSTM2D,TimeDistribute ...
- keras实例学习-双向LSTM进行imdb情感分类
源码:https://github.com/keras-team/keras/blob/master/examples/imdb_bidirectional_lstm.py 及keras中文文档 1. ...
- 使用Keras进行深度学习:(六)LSTM和双向LSTM讲解及实践
###欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 介绍 长短期记忆(Long Short Term Memor ...
- 利用Keras开发用于分类问题的双向LSTM及与LSTM性能的比较
双向LSTM是传统LSTM的扩展,可以提高序列分类问题的模型性能.在输入序列为时间问题的分类数据上,双向LSTM在输入序列上训练的模型是两个而不是一个LSTM.输入序列中的第一个是原始样本,第二个是输 ...
- 基于keras的双层LSTM网络和双向LSTM网络
1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下: LSTM(units,input_shape,return_sequences=False) un ...
- 基于双向LSTM和迁移学习的seq2seq核心实体识别
http://spaces.ac.cn/archives/3942/ 暑假期间做了一下百度和西安交大联合举办的核心实体识别竞赛,最终的结果还不错,遂记录一下.模型的效果不是最好的,但是胜在" ...
- 【NLP】使用堆叠双向 LSTM 进行情感分析
作者 | SRIVIGNESH_R 编译 | Flin 来源 | analyticsvidhya 情绪分析 情感分析是发现文本数据的情感的过程.情感分析属于自然语言处理中的文本分类.情绪分析将帮 ...
- IMDB影评的情感分析任务:双层bi-LSTM模型(双向LSTM)
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) IMDB影评的情感分析任务 学习目标 了解影评情感分析任务和I ...
- [深度学习] PyTorch 实现双向LSTM 情感分析
一 前言 情感分析(Sentiment Analysis),也称为情感分类,属于自然语言处理(Natural Language Processing,NLP)领域的一个分支任务,随着互联网的发展而兴 ...
最新文章
- (volatile int)(x)与*(volatile int *)(x)
- CentOS7.X的系统管理、安全设置及系统优化思路
- 读《程序是怎样跑起来的》第5章
- 线程:ReentrantReadWriteLock类
- HALCON学习之旅(五)
- 朴素贝叶斯算法matlab实现以及EM算法
- PForDelta的介绍论文
- 如何在 iPhone、iPad 和 Mac 上压缩照片?
- linux 编译cgal,Linux环境下CGAL配置
- Java Web 2.1.4 HTML 表单标签与表单设计 (实例)
- 找不到注册表中HKEY_CURRENT_USER的问题
- php radio是什么意思,radio是什么意思_radio在线翻译_英语_读音_用法_例句_海词词典...
- Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
- 单向链表与双向链表的区别
- MICCAI 2022 | mmFormer:Multimodal Medical Transformer for Incomplete Multimodal Learning of BTS
- PTA 7-43 币值转换 (20 分)
- 可降低75%的系统集成成本!安波福引领“智能汽车架构”升级
- TensorRT报Cuda initialization failure with error
- 时间序列——滑动窗口
- 【论文笔记之 MDF】Multidelay Block Frequency Domain Adaptive Filter