分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测

分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测

目录

    • 分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测
      • 分类效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

分类效果

1
2
3
4
5
6

基本介绍

MATLAB实现CNN-BiLSTM-Attention多输入分类预测,CNN-BiLSTM结合注意力机制多输入分类预测。

模型描述

Matlab实现CNN-BiLSTM-Attention多变量分类预测
1.data为数据集,格式为excel,12个输入特征,输出四个类别;
2.MainCNN_BiLSTM_AttentionNC.m为主程序文件,运行即可;

注意程序和数据放在一个文件夹,运行环境为Matlab2020b及以上。
4.注意力机制模块:
SEBlock(Squeeze-and-Excitation Block)是一种聚焦于通道维度而提出一种新的结构单元,为模型添加了通道注意力机制,该机制通过添加各个特征通道的重要程度的权重,针对不同的任务增强或者抑制对应的通道,以此来提取有用的特征。该模块的内部操作流程如图,总体分为三步:首先是Squeeze 压缩操作,对空间维度的特征进行压缩,保持特征通道数量不变。融合全局信息即全局池化,并将每个二维特征通道转换为实数。实数计算公式如公式所示。该实数由k个通道得到的特征之和除以空间维度的值而得,空间维数为H*W。其次是Excitation激励操作,它由两层全连接层和Sigmoid函数组成。如公式所示,s为激励操作的输出,σ为激活函数sigmoid,W2和W1分别是两个完全连接层的相应参数,δ是激活函数ReLU,对特征先降维再升维。最后是Reweight操作,对之前的输入特征进行逐通道加权,完成原始特征在各通道上的重新分配。

1
2

程序设计

  • 完整程序和数据获取方式1:同等价值程序兑换;
  • 完整程序和数据获取方式2:私信博主获取。
%% CNN模型建立

layers = [
    imageInputLayer([size(input,1) 1 1])     %输入层参数设置
    convolution2dLayer(3,16,'Padding','same')%卷积层的核大小、数量,填充方式
    reluLayer                                %relu激活函数
    fullyConnectedLayer(384) % 384 全连接层神经元
    fullyConnectedLayer(384) % 384 全连接层神经元
    fullyConnectedLayer(1)   % 输出层神经元
    regressionLayer];        % 添加回归层,用于计算损失值
%% 模型训练与测试

options = trainingOptions('adam', ...
    'MaxEpochs',20, ...
    'MiniBatchSize',16, ...
    'InitialLearnRate',0.005, ...
    'GradientThreshold',1, ...
    'Verbose',false,...
    'Plots','training-progress',...
    'ValidationData',{testD,targetD_test'});
% 训练
net = trainNetwork(trainD,targetD',layers,options);
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
tempLayers = multiplicationLayer(2, "Name", "multiplication");         % 点乘的注意力
lgraph = addLayers(lgraph, tempLayers);                                % 将上述网络结构加入空白结构中

tempLayers = [
    sequenceUnfoldingLayer("Name", "sequnfold")                        % 建立序列反折叠层
    flattenLayer("Name", "flatten")                                    % 网络铺平层
    bilstmLayer(6, "Name", "bilstm", "OutputMode", "last")             % BiLSTM层
    fullyConnectedLayer(num_class)                                     % 全连接层
    softmaxLayer                                                       % 损失函数层
    classificationLayer];                                              % 分类层
lgraph = addLayers(lgraph, tempLayers);                                % 将上述网络结构加入空白结构中

lgraph = connectLayers(lgraph, "seqfold/out", "conv_1");               % 折叠层输出 连接 卷积层输入;
lgraph = connectLayers(lgraph, "seqfold/miniBatchSize", "sequnfold/miniBatchSize"); 

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129943065?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/129919734?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【教程】解决VSCode中Python第三方库无法自动补全

背景 学习ROS的时候,发现ROS的第三方库无法自动补齐 解决过程 查询到的一个解决方法是,禁用Pylance扩展 禁用之后第三方库可以自动补齐了但是原来自带库的语法高亮消失了此解决方法不是上策 解决方法 打开 .vscode 文件夹下面的 setting.json 文件 …

QN88封装国产FPGA

QN88GW1N-9管脚名GW2A-18管脚名AL3S10EG4S201VCCVCCIO_L1_1VCC_12VSSVSSIO_L2_1IO_L1_13IOL2AVCCO7IO_L3_1,MOSI,D1IO_L2_14IOL5A/JTAGSEL_N/LPLL_T_inIOL7A/LPLL1_T_inIO_L4_1IO_L1N_15IOL11A/TMSIOR25B/TMSIO_L5_1,SPICSNIO_L1P_16IOL11B/TCKIOR26A/TCKINITNGND7IOL12B/TDIIO…

常见漏洞扫描工具AWVS、AppScan、Nessus的使用

HVV笔记——常见漏洞扫描工具AWVS、AppScan、Nessus的使用1 AWVS1.1 安装部署1.2 激活1.3 登录1.4 扫描web应用程序1.4.1 需要账户密码登录的扫描1.4.2 利用录制登录序列脚本扫描1.4.3 利用定制cookie扫描1.5 扫描报告分析1.5.1 AWVS报告类型1.5.2 最常用的报告类型&#xff1a…

Hive小文件问题

1、小文件产生的原因 数据源本身有很多小文件:reduce数量多导致生成的小文件增多:使用动态分区导致小文件增多: 2、小文件危害 HDFS内存资源消耗过大,并限制了数据存储规模:在HDFS中,具体的文件保存在da…

静态链表常用操作(节点计数/查找/增加/删除)

1.封装计算链表节点个数的API 代码心得: cnt是count的缩写,用来计数。节点,我们一般指的是链表中数据的地址(指针)。比如节点1就是第一个结构体的地址,节点2就是第2个结构体的地址,以此类推。…

Adaptive AUTOSAR架构和特性介绍

概述 本文主要内容分为两章节。第一章节简要介绍了AUTOSAR的软件架构,设计理念以及方法论,对Classic Platform和Adaptive Platform做了简单的比较。第二章主要介绍了Adaptive Platform的特性。 第一章 AUTOSAR架构介绍 AUTOSAR(AUTomotive Open System ARchitecture)是汽车…

MySQL性能优化(四)性能优化总结

文章目录连接优化服务端链接优化客户端连接优化配置的优化架构优化数据库高可用:数据库慢查询慢查询日志profiling工具表结构和存储引擎的优化存储引擎:表结构SQL与索引的优化案例- 执行计划 ExplainID序号select type查询类型type 针对单表的访问方法Sy…

ChatGPT 与 MindShow 一分钟搞定一个PPT

前言 PPT制作是商务、教育和各种场合演讲的重要组成部分。然而,很多人会花费大量时间和精力在内容生成和视觉设计方面。为了解决这个问题,我们可以利用两个强大的工具——ChatGPT和MindShow,来提高制作PPT的效率。 一、ChatGPT 与 MindShow…

Linux操作系统ARM体系结构处理器机制原理与实现

ARM 的概念ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM 公司并不生产芯片也不销售芯片,它只出售芯片技术授权。其合作公司针对不同需求搭配各类硬…

ChatGPT惨遭围剿?多国封杀、近万人联名抵制……

最近,全世界燃起一股围剿ChatGPT的势头。由马斯克、图灵奖得主Bengio等千人联名的“暂停高级AI研发”的公开信,目前签名数量已上升至9000多人。除了业内大佬,欧盟各国和白宫也纷纷出手。 最早“动手”的是意大利,直接在全国上下封…

SwinTransformer学习

参考: Swin-Transformer网络结构详解 https://blog.csdn.net/qq_37541097/article/details/121119988 x.1 前言 x.1.1 特点 它具有两个特点: 采用类似卷积神经网络中的层次构建方法采用W-MSA和SW-MSA全新的位置编码方式 层次构建方法 相比较于ViT&…

从零开始学Python第12课:常用数据结构之集合

在学习了列表和元组之后,我们再来学习一种容器型的数据类型,它的名字叫集合(set)。说到集合这个词大家一定不会陌生,在数学课本上就有这个概念。如果我们把一定范围的、确定的、可以区别的事物当作一个整体来看待&…

有符号加法运算

实例 module Signed_add(input signed [3:0] a,input signed [3:0] b,output signed [4:0] out );wire signed [3:0] a1;wire [3:0] a2;wire signed [3:0] b1;wire [3:0] b2;wire signed [4:0] out1;wire [4:0] out2;wire signed [4:0] out3;wire …

五步教你如何注册一个公司网站

在今天的数字化时代,每个公司都需要一个强大的线上存在感。注册一个公司网站是实现这一目标的第一步。但是,对于许多公司而言,这个过程可能有些困难。因此,在本文中,我将介绍一个五步计划,让您轻松注册一个…

【SpringBoot】面试组合技-天羽屠龙舞,SpringBootApplication注解的作用是什么?SpringBoot怎么实现自动装配的?

SpringBoot源码下载地址:https://github.com/spring-projects/spring-boot/tags 文章目录🍟下载源码🍗环境准备🍖注解解析🍝SpringBootConfiguration注解🍛EnableAutoConfiguration注解🍤AutoC…

AD20的PCB布线规则设定

目录 1、最小安全间距 2、线宽规则 3、过孔 4、盖油工艺设计 5、内电层焊盘模式设置 6、反焊盘间距设计 7、焊盘与覆铜连接类型 AD20的规则库设定是PCB布线的首要工作,在布线初期就要设置好,布线的过程中还需要动态的变更,因此本篇总结了PCB的…

【Linux】之nc命令(连接与扫描指定端口、监测服务端口的使用情况)解析、详解实例、邮件告警

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录nc命令简介nc命令的安装nc命令语法格式…

【K8S系列】Pod详解

目录 序言 1 前言 2 为什么需要pod 3 什么是Pod? 3.1 Pod的组成 3.2 Pod的用途 3.3 Pod的生命周期 3.4 Pod的特点 4 Pod的使用 5 结论 序言 任何一件事情,只要坚持六个月以上,你都可以看到质的飞跃。 今天学习一下K8s-Pod相关内容&…

SQL删除记录方式汇总

大家好,我是RecordLiu! 今天给大家分享的是SQL中删除记录的不同方式,我会用几道真题来给大家讲解。 题目直达链接: 牛客网在线SQL编程练习 切换到SQL篇就能看到了。 我这里先列下知识点: SQL中进行简单删除的语法是什么?SQL…

关于AI 绘画,我给你总结了一份详细的关键词(Prompt 知识)

写在前面 随着人工智能技术的不断发展,越来越多的应用场景被发掘。其中,AI绘画是一种新兴的领域,其应用范围涵盖了数字媒体、游戏设计、动画制作、艺术创作等多个领域。在本文中,我们将介绍AI绘画的基本概念、发展历程、技术原理…