【Keras】LSTM和Bi-LSTM神经网络

2023-10-28

导入安装包

import tensorflow.keras
from tensorflow.keras.datasets import mnist
from tensorflow.keras.layers import Dense,LSTM,Bidirectional
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import Sequential

加载并划分数据集

使用手写数字数据

#划分数据集
(x_train,y_train),(x_test,y_test) = mnist.load_data()

数据处理

数据类型转换:
x_train和x_test里的数据都是int整数,要把它们转换成float32浮点数
数据归一化处理:
要把x_train和x_test里的整数变成0-1之间的浮点数,就要除以255。因为色彩的数值是0-255,所以要变成0-1之间的浮点数,只要简单的除以255
one-hot处理:
y值0-9数字变成onehot模式,以后就可以把分类数据变成这种形式

#设置数据类型为float32
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')

# 数据值映射在[0,1]之间
x_train = x_train/255
x_test = x_test/255

#数据标签one-hot处理
y_train = keras.utils.to_categorical(y_train,10)
y_test = keras.utils.to_categorical(y_test,10)
print(y_train[1])

创建LSTM模型并训练

nb_lstm_outputs = 30#神经元个数
nb_time_steps = 28 #时间序列长度
nb_input_vector = 28 #输入序列

#创建模型
model = Sequential()
model.add(LSTM(nb_lstm_outputs,input_shape=(nb_time_steps,nb_input_vector)))
model.add(Dense(10,activation='softmax'))

model.compile(optimizer='adam',
             loss='categorical_crossentropy',
             metrics=['acc'])
model.fit(x_train,y_train,epochs=20,batch_size=128)

在这里插入图片描述

#打印模型
model.summary()

在这里插入图片描述

评估模型

model.evaluate(x_test, y_test,batch_size=128, verbose=1)

在这里插入图片描述预测结果比前文的简单神经网络要好:
在这里插入图片描述准确度从0.9615提升到0.9751

创建Bi-LSTM模型并训练

# building model
model = Sequential()
model.add(Bidirectional(
    LSTM(nb_lstm_outputs,return_sequences=True),input_shape=(nb_time_steps, nb_input_vector)
        ))
model.add(Bidirectional(LSTM(nb_lstm_outputs)))
model.add(Dense(10,activation='softmax'))

#编译模型
model.compile(optimizer='adam',
             loss='categorical_crossentropy',
             metrics=['acc'])
#训练模型             
model.fit(x_train,y_train,epochs=20,batch_size=128)

在这里插入图片描述

打印Bi-LSTM模型

model.summary()

在这里插入图片描述

评估Bi-LSTM模型

model.evaluate(x_test, y_test,batch_size=128)

在这里插入图片描述

准确度从0.9751提升到0.9861

写文不容易,请给个赞吧!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Keras】LSTM和Bi-LSTM神经网络 的相关文章

随机推荐

  • IKE SA和IPSec SA的区别

    刚接触IPSec的时候 一直很奇怪 为什么要做两阶段的协商 先协商出来一个IKE SA 然后再IKE SA的基础上协商出来一个IPSec SA 直接一步到位协商出IPSec SA不是很好吗 但是在实际应用中 直接协商IPSec SA就显得不
  • 人工智能-动物识别系统

    在本系统当中 知识库中的知识用产生式规则来表示 共有如下15条规则 R1 IF该动物有奶THEN该动物是哺乳动物 R2 IF该动物有毛发THEN该动物是哺乳动物 R3 IF该动物有羽毛THEN该动物是鸟 R4 IF该动物会飞AND会下蛋TH
  • 《深入浅出深度学习》之“从逻辑学到认知科学”

    大家应该都听说过 在2016年 Google DeepMind 的AlphaGo 与韩国围棋大师李世石九段进行了著名的人机大战 并且取得完胜 媒体描述AlphaGo的胜利时 都提到了人工智能 Artificial Intelligence
  • MySQL数据库for CentOS7 yum安装、5.7.30编译安装和基础操作

    1 MySQL数据库简介 MySQL 是一种关系数据库管理系统 关系数据库将数据保存在不同的表中 而不是将所有数据放在一个大仓库内 这样就增加了速度并提高了灵活性 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言 关系数据库管
  • 华为手机恢复出厂设置出现com.android.phone,如何在华为手机中恢复出厂设置?怎么在华为手机中一键还原?...

    如何在华为手机中恢复出厂设置 怎么在华为手机中一键还原 许多使用华为手机的小伙伴在使用一段时间手机过后 手机会变得有些卡顿 我们可以将手机恢复出厂设置来缓解手机卡顿的现象 今天 小编就教大家在华为手机中恢复出厂设置 具体如下 1 我们打开手
  • 一文讲完Java常用设计模式(全23种)

    文章目录 介绍 设计模式的六大原则 一 创建型模式 1 单例模式 Singleton Pattern 1 饿汉式 2 懒汉式 双检锁 3 静态内部类 4 枚举 2 原型模式 Prototype Pattern 3 工厂模式 Factory
  • js点击按钮改变文本

    h1 My Web Page h1 p A Paragraph p
  • linux环境下搭建宝塔(一键部署)

    了解宝塔 简单好用的服务器运维面板 宝塔Linux面板是提升运维效率的服务器管理软件 支持一键LAMP LNMP 集群 监控 网站 FTP 数据库 JAVA等100多项服务器管理功能 有30个人的专业团队研发及维护 经过200多个版本的迭代
  • Spring Boot 最核心的 25 个注解

    Spring Boot 最核心的 25 个注解 1 SpringBootApplication 这是 Spring Boot 最最最核心的注解 用在 Spring Boot 主类上 标识这是一个 Spring Boot 应用 用来开启 Sp
  • h5事件监听

    问题 点击div 或弹框 外的任何区域div 或弹框 消失 前情提要 项目是用angular写的移动端页面 测试反馈点击确认按钮每次都要点击2次才生效 体验很不好 需要优化 页面如下图所示 点击金额输入框键盘出现输入金额 键盘是单独封装的组
  • vi编辑器的使用(1)

    Linux 系统下的文本编辑器有很多种 包括图形模式下的gedit kwrite等 文本模式下的vi vim vi的增强版本 emacs等 其中vi和emacs是Linux系统中最常用的两个编辑器 本节主要介绍vi编辑器 主要内容包括 vi
  • Qt事件(消息)循环的源码分析之创建

    Qt程序的特点 Qt 是事件驱动的 尤其是你用Qt做界面开发时 你必须知道Qt的事件循环是如何开展的 从Win32到Qt 程序入口WinMain 创建窗口 进入事件 消息 循环 int main int argc char argv 入口m
  • Java常用日期工具实现

    获取今日日期 获取本月第一天日期 获取本月最后一天日期 date转日期字符串 日期字符串转date 日期字符串格式化 根据date获取past天前的日期 获取当前年周数 yyyy w 获取范围时间内的日期集合 public class My
  • 第八届蓝桥杯JavaB组省赛I题----分巧克力

    儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们 切出的巧克力需要满足 形状是正
  • 建模杂谈系列225 小结与反思

    说明 一个项目结束了 趁这两三天在休息 把本次的收获和教训都盘点一下 然后再开始一个更刺激的项目 短暂的停顿 是为了把过去一段时间辛苦的成果固化一下 把那些很容易消散的宝贵知识和经验可以给未来做决策工具 内容 1 事实 这是在疫情之后做的第
  • Vue3——Suspense组件

    Suspense组件 官网中有提到他是属于实验性功能
  • 面试知识点-- 操作系统执行可执行程序时,内存分配是怎样的?

    可执行程序的内存分布 GNU编译器生成的目标文件默认格式为elf executive linked file 格式 这是Linux系统所采用的可执行链接文件的通用文件格式 elf格式由若干个段 section 组成 由标准c源代码生成的目标
  • Java遍历List四种方法的效率对比

    Java遍历List四种方法的效率对比 遍历方法简介 Java遍历List的方法主要有 1 for each for bject o list 2 Iterator Iterator iter list iterator while ite
  • Linux配置、安装交叉编译环境 gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz

    步骤测试流程 步骤 1 将文件 gcc 4 6 2 glibc 2 13 linaro multilib 2011 12 tar gz 拷贝到 Ubuntu 主目录下 i MX6 用户光盘 i MX6 用户光盘 A linux tool g
  • 【Keras】LSTM和Bi-LSTM神经网络

    KerasLSTM和Bi LSTM神经网络 导入安装包 加载并划分数据集 数据处理 创建LSTM模型并训练 评估模型 创建Bi LSTM模型并训练 打印Bi LSTM模型 评估Bi LSTM模型 导入安装包 import tensorflo