[LSTM学习笔记2]使用Keras开发LSTM

基于Keras搭建LSTM网络实现文本情感分类 LSTM实现情感分析 阅读详情

使用Keras开发LSTM可以分为6步:

  • 定义模型
  • 编译模型
  • 拟合模型
  • 评估模型
  • 使用模型进行预测

1.定义模型

(1)主要使用Sequential()类下的LSTM()和Dense(),如:

layers = [LSTM(2),Dense(1)]  
model = Sequential(layers)

第一个隐层需要定义输入,输入的维度必须是三维的(samples,time steps,features)
可以使用Numpy的reshape函数实现维度转换,如将2D转为3D:
data = data.reshape((data.shape[0], data.shape[1], 1))

(2)最后一层激活函数的选用

  • Regression:线性激活函数,Dense()默认的激活函数。
  • Binary Classification:二分类问题,输出一个值,通常使用sigmoid。
  • Multiclass Classification:多分类问题,使用softmax,输出通常为one-hot形式。

2.编译模型

定义优化算法和损失函数,如:

algorithm = SGD(lr=0.1, momentum=0.3)
model.compile(optimizer=algorithm, loss= mse )
或写在一起: 
model.compile(optimizer= sgd , loss= mean_squared_error , metrics=[ accuracy ])

优化算法在Keras中经常使用的有:

  • SGD
  • Adam
  • RMSprop

损失函数通常为:

  • Regression:均方误差(MSE)
  • Binary Classification:cross_entroy或binary_crossentropy
  • Multiclass Classification:categorical_crossentropy

3.拟合模型

模型训练中通常需要设置的参数是batch_size和epochs,模型将返回训练过程中的模型性能汇总,每个epoch记录一次,如loss和任何编译模型阶段定义的metrics,这些数据可以用于绘图。

history = model.fit(X, y, batch_size=10, epochs=100, verbose=0)

4.评估模型

使用测试评估集在模型上进行评估:
如: loss, accuracy = model.evaluate(X, y, verbose=0)

 

5.使用模型进行预测

使用predicte()函数
predictions = model.predict(X, verbose=0)

为LSTM准备数据的例子

 

  • 1.单特征输入实例:多个时间步的序列,仅一个特征

 

rom numpy import array
data = array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0])
#将一维输入序列转换为keras要求的3维序列(1sample,10time steps,1 feature)
data = data.reshape((1,10,1))
print(data.shape)

输出:

(1, 10, 1)

 

现在数据可以输入LSTM,如:

model = Sequential()
model.add(LSTM(32,input_shape=(10,1)))
  • 对特征输入实例 比如下面的两个并行序列:
    series 1: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
    series 2: 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1

 

from numpy import array
data = array([
    [0.1,1.0],
    [0.2,0.9],
    [0.3,0.8],
    [0.4,0.7],
    [0.5,0.6],
    [0.6,0.5],
    [0.7,0.4],
    [0.8,0.3],
    [0.9,0.2],
    [1.0,0.1]
])
#将数据reshape为1sampe,10time-steps,2features
data = data.reshape(1,10,2)
print(data.shape)

 输出:

(1, 10, 2)

现在数据可以输入LSTM

model = model.Sequential()
model.add(LSTM(32,input_shape=(10,2)))

 

Keras中LSTM的输入小结:

  1. LSTM输入数据必须是三维
  2. 3个输入维度分别是:sample,time steps,features
  3. LSTM输入层通过input_shape参数在第一个隐藏层上定义
  4. input_shape参数的参数是由time steps和features这两个值组成的元组
  5. sample的数量程序认为是1或更多
  6. 使用numpy array中的reshape函数将1D或2D数据转换为LSTM输入要求的3D数据,该函数的参数是新shape组成元组。

I

 

​
Keras LSTM教程 本文原登载在极客教程的深度学习专栏:http://geek-docs.com/deep-learning/rnn/keras-lstm-tutorial.html 文章目录 1 循环神经网络 2 LSTM网络 3 LSTM字嵌入和隐藏层大小 4 Keras LSTM架构 5 构建Keras LSTM模型 6 创建Keras LSTM数据生成器 7 创建Keras LSTM结构 8 编译并运行Ker... 阅读详情

相关推荐

Keras中CNN联合LSTM进行分类

原文地址:http://siligence.ai/article-444-1.html def get_model(): n_classes = 6#要分的类别 inp=Input(shape=(40, 80))#输入data的形状 reshape=Reshape((1,40,80))(inp)#开始建模,这是keras的一种方式,这种方式比较好操作,另外一种神经网络简单,但是不好拓展,推荐这种。...

luodoudoudou的博客 5922

LSTM函数详解(keras)

原文链接:https://www.zhihu.com/question/64470274 https://blog.csdn.net/jiangpeng59/article/details/77646186 跑试验的间隙,遇到了同样的困惑,看了一圈答案之后,想明白了。再来给大家白话解释一遍。根据Keras 官方文档的函数定义:keras.layers.LSTM(units, activation='tanh', recurrent_activation='sigmoid', ....units: Posit

qq_43703185的博客 1万+

Keras之LSTM源码阅读笔记

这里目前为止只是博主阅读Keras中LSTM源码的草稿笔记,内容不全,没有清晰的逻辑,只是堆砌个人想法。参考文献: 1. keras的官方相关文档 2. LSTM原论文 3. keras的RNN源码1. 接口研究1.1. Recurrent接口Recurrent是LSTM的父类(实际是通过SimpleRNN间接继承),定义所有RNNs的统一接口。1.1.1. implementation:im

silent56_th的博客 8562

使用Keras进行LSTM实战

0 前言 在上文中进行ARIMA时序预测后,了解到强大的LSTM在处理时序预测有更为优秀的表现,因此对LSTM进行了学习。 LSTM是一种时间递归神经网络,它出现的原因是为了解决RNN的一个致命的缺陷。原生的RNN会遇到一个很大的问题,叫做The vanishing gradient problem for RNNs,也就是后面时间的节点会出现老年痴呆症,也就是忘事儿,这使得RNN在很长一段时...

浅笑古今的博客 13万+

LSTM——基于keras

最近做一个关于用电负荷预测的项目,想用循环神经网络试一下,具有时间特性的数据预测当然非LSTM莫属了啦,但是感觉自己对LSTM的输入和输出不是很明白,就学习顺便整理一下吧。 此处属于我个人理解,可能有不正确的地方欢迎大家指正。 Cell 说到LSTM当然先来一张cell的图了: LSTM结构图 图中看起来是三个cell,其实是一个cell在不同时刻上的拼接,也就是说其实是一个c...

Beans___Lee的博客 1851

基于keras搭建LSTM Dense飞机航班乘客数量预测 完整数据+代码 毕业设计

基于keras搭建LSTM Dense飞机航班乘客数量预测 完整数据+代码 毕业设计

700

LSTM 02:使用Keras编写LSTM

本文介绍了使用TensorFlow Keras开发LSTM模型,以进行时间序列预测任务。

全性保真,不以物累形。 1万+

使用 Keras 在 Python 中使用 LSTM 递归神经网络进行时间序列预测

使用 Keras 在 Python 中使用 LSTM 递归神经网络进行时间序列预测

weixin_62135607的博客 3413

基于Keras构建LSTM

前言: 之前构建LSTM网络是通过Tensorflow,虽然也不错,可是接触到keras后觉得Keras真香!(虽然Tensorflow为默认后端) Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras: 简易和快速的...

fff2zrx的博客 6975

Keras深度学习实战(29)——长短时记忆网络详解与实现

长短时记忆网络 (Long Short Term Memory, LSTM) 解决了循环神经网络 (Recurrent neural networks, RNN) 梯度爆炸/消失的问题,是建立在循环神经网络基础上的一种新型深度学习的时间序列模型。本节中,首先介绍了传统 RNN 模型的局限性,然后详细介绍了 LSTM 的基本原理与各组成部分的计算细节,最后,使用 Keras 实现了 LSTM 模型用以加深对 LSTM 背后运行机制的理解。

盼小辉丶的博客 1万+

Keras深度学习实战——使用长短时记忆网络构建情感分析模型

我们已经学习了如何使用循环神经网络 (Recurrent neural networks, RNN) 构建情感分析模型,为了将循环神经网络与长短时记忆网络 (Long Short Term Memory, LSTM) 的性能进行对比,同时也为了加深对 LSTM 的了解,在节中,我们将使用 LSTM 来进行情感分类任务。

盼小辉丶的博客 9798

Keras实现GRU 与LSTM

目录 LSTM 变种——GRU的原理 GRU 与LSTM的对比 Keras实现GRU keras中使用gru/LSTM,如何选择获得最后一个隐状态还是所有时刻的隐状态 LSTM的网络结构图: C是一个记忆单元, U和W是网络LSTM模型的参数(权值矩阵), i、f、o分别称之为输入门、遗忘门、输出门。 σ表示sigmoid激活函数 ;s(t)是t时刻,LSTM隐藏层的激活值 ...

冷月无声的博客 1万+

雪莉果的Axure原型工厂vol.006 中继器应用(二)——多选穿梭框

如果你用axure有一段时间了,那么你很快就能琢磨出一个大体设计流程,比如加一个中间过度的元件,来储存需要穿梭的内容;但是如果你再想一想,就会发现,这样做,似乎只能解决单选,那么多选需要怎么操作呢? 这时候,中继器就会告诉你,我还能做的更多。

weixin_43829792的博客 976

在Keras中开发LSTM

1 定义模型 第一步是定义你的网络,keras中的神经网络被定义为一系列的层,这些层的容器是Sequential类。第一步是创建Sequential类的实例,然后可以创建相应的层,并按照它们应该连接的顺序添加它们。由存储单元组成的LSTM循环层被称为LSTM()。一个全连接层经常跟着一个LSTM层,用于输出一个预测的层被称为Dense()。 例如,我们可以定义一个具有两个存储单元的LSTM隐藏...

程序员养成日记 4415

「API取数」FDL获取金蝶云星空的单据数据

本文介绍了如何使用FDL实现金蝶云API取数以及如何有效应对复杂的API数据处理场景。

oOBubbleX的博客 2026

网工最容易搞混的三个概念:防火墙、网闸、堡垒机,一文让你轻松搞明白。

网闸的作用可以简单概括为:在两个或多个不同安全级别的网络(如内网和外网、普通网与高安全网、受限网与互联网)之间建立一个严格隔离、信息流转的安全桥梁。它的核心任务是实现数据安全传输与隔离,避免网络之间的直接连接带来的安全隐患。数据传输安全:网闸保证数据从一个网络到另一个网络时,能够进行审查、过滤和转换,防止恶意数据或非法信息被传入内部网络或外部泄露。高安全性隔离:网闸常常用于企业的内外网隔离、军事网络、政府机关等对数据隔离要求极高的环境。

HWP18612324139的博客 3635

LSTM原理详解及keras代码实现

LSTM原理及实现 RNN LSTM 实现 RNN基本原理 前言 当我们处理与事件发生的时间轴有关系的问题时,比如自然语言处理,文本处理,文字的上下文是有一定的关联性的;时间序列数据,如连续几天的天气状况,当日的天气情况与过去的几天有某些联系;又比如语音识别,机器翻译等。在考虑这些和时间轴相关的问题时,传统的神经网络就无能为力了,因此就有了RNN(recurrent neural network,循环神经网络),了解RNN先了解DNN基本原理。同样这里介绍RNN基本原理,也是为了铺垫我们的重点LSTM网络

weixin_42046792的博客 5796

UR5双臂Gazebo仿真(Python)

近来在Gazebo上搭了一个ur5双臂仿真平台。 差不多就是以下这样。 使用rostopic list查看一下话题,如下 显然,采用/left_arm_controller/follow_joint_trajectory/goal和/right_arm_controller/follow_joint_trajectory/goal两个话题来控制双臂的运动。 现在的问题是,如何保证双臂运动的一致性,即如何能保证双臂能同时接受到以上两个消息。 思路一:设置/left_arm_controlle

qq_42823342的博客 2233

Keras: 怎样使用LSTM

LSTM(10, input_length=shape[1], input_dim=shape[2],return_sequences=True) model.add(LSTM(32, input_shape=(10, 64))) 这里的 input_length, input_dim , input_shape是什么意思?怎样使用LSTM? 通过help(LSTM)查看 class LS...

u011279649的专栏 1186

【论文阅读笔记】One Shot 3D Photography

论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookresearch/one_shot_3d_photography   该3D照片方向,由于刚入门,所以会倾向于翻译文章。每个操作上的选择,及为什么不进行另外操作的原因都如数放上。 论文小结   本作的工作是从单张RGB图片生成一个移动视角的3D照片。   其管道大致如下: 由RGB图像通过单目深度估计网络估计深度图

时光机 °的博客 1839

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 356

[Python笔记] Keras-LSTM学习笔记

LSTM网络是一种循环神经网络。循环神经网络是一种神经网络,它试图对依赖于时间或顺序的行为(如语言、股价、电力需求等)进行建模。1.结构 2.Embedding 3.Keras LSTM

Rinnki's memo 1921

ansys非线性分析中接触类型

不分离(No Separation)‌:法向始终保持接触不分离,切向允许自由滑动,属于线性接触,适合需要法向约束、允许微小切向位移的场景,比如过盈配合的简化模拟。有摩擦(Frictional)‌:法向允许分离,切向根据用户设置的摩擦系数计算摩擦力,是工程中最符合实际机械接触的类型,绝大多数装配体分析都选择该类型。无摩擦(Frictionless)‌:法向允许接触面分离,切向无摩擦、允许自由滑动,适合模拟理想润滑的光滑接触面,图中当前选择的就是该类型。非线性接触(需要多次迭代,属于真正的非线性接触行为)‌。

qq_15963745的博客 71

Keras + LSTM 做回归demo

学习神经网络 想拿lstm 做回归, 网上找demo 基本三种: sin拟合cos 那个, 比特币价格预测(我用相同的代码和数据没有跑成功, 我太菜了)和keras 的一个例子 我基于keras 那个实现了一个, 这里贴一下我的代码. import numpy as np np.random.seed(1337) from sklearn.model_selection import...

weixin_30443731的博客 3279

C语言使用开源库libusb进行USB设备操作

https://libusb.info/libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware. It is portable: Using a single cross-platform AP

m0_60352504的博客 1553

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习好文-一文带你深入理解LSTM长短时记忆网络

是一种特殊类型的循环神经网络(RNN),主要用于解决传统RNN在处理长序列时面临的梯度消失和梯度爆炸问题。LSTM通过引入一种称为“门控机制”的结构来改善RNN的记忆能力,从而能够在长序列中保持重要的信息,避免忘记。LSTM最初由Sepp Hochreiter和Jürgen Schmidhuber在1997年提出,并迅速成为处理序列数据(如时间序列、文本、语音等)中最有效的模型之一。

m0_69378371的博客 2336

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: [LSTM学习笔记1]LSTM数据准备
下一篇: [LSTM学习笔记3]Models for Sequence Prediction
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值