matlab版本是2018b及其以上。

%%
%加载序列数据
%数据描述:总共270组训练样本共分为9类,每组训练样本的训练样个数不等,每个训练训练样本由12个特征向量组成,
[XTrain,YTrain] = japaneseVowelsTrainData;
%数据可视化
figure
plot(XTrain{1}')
xlabel("Time Step")
title("Training Observation 1")
legend("Feature " + string(1:12),'Location','northeastoutside')
%%
%LSTM可以将分组后等量的训练样本进行训练,从而提高训练效率
%如果每组的样本数量不同,进行小批量拆分,则需要尽量保证分块的训练样本数相同
%首先找到每组样本数和总的组数
numObservations = numel(XTrain);
for i=1:numObservationssequence = XTrain{i};sequenceLengths(i) = size(sequence,2);
end
%绘图前后排序的各组数据个数
figure
subplot(1,2,1)
bar(sequenceLengths)
ylim([0 30])
xlabel("Sequence")
ylabel("Length")
title("Sorted Data")
%按序列长度对测试数据进行排序
[sequenceLengths,idx] = sort(sequenceLengths);
XTrain = XTrain(idx);
YTrain = YTrain(idx);
subplot(1,2,2)
bar(sequenceLengths)
ylim([0 30])
xlabel("Sequence")
ylabel("Length")
title("Sorted Data")%%
%设置LSTM训练数据的小批量分组个数
miniBatchSize = 27;%%
%定义LSTM网络架构:
%将输入大小指定为序列大小 12(输入数据的维度)
%指定具有 100 个隐含单元的双向 LSTM 层,并输出序列的最后一个元素。
%指定九个类,包含大小为 9 的全连接层,后跟 softmax 层和分类层。
inputSize = 12;
numHiddenUnits = 100;
numClasses = 9;layers = [ ...sequenceInputLayer(inputSize)bilstmLayer(numHiddenUnits,'OutputMode','last')fullyConnectedLayer(numClasses)softmaxLayerclassificationLayer]%%
%指定训练选项:
%求解器为 'adam'
%梯度阈值为 1,最大轮数为 100。
% 27 作为小批量数。
%填充数据以使长度与最长序列相同,序列长度指定为 'longest'。
%数据保持按序列长度排序的状态,不打乱数据。
% 'ExecutionEnvironment' 指定为 'cpu',设定为'auto'表明使用GPU。maxEpochs = 100;
miniBatchSize = 27;options = trainingOptions('adam', ...'ExecutionEnvironment','cpu', ...'GradientThreshold',1, ...'MaxEpochs',maxEpochs, ...'MiniBatchSize',miniBatchSize, ...'SequenceLength','longest', ...'Shuffle','never', ...'Verbose',0, ...'Plots','training-progress');%%
%训练LSTM网络
net = trainNetwork(XTrain,YTrain,layers,options);%%
%测试LSTM网络
%加载测试集
[XTest,YTest] = japaneseVowelsTestData;%由于LSTM已经按照相似长度的小批量分组27,测试需要按照相同方式对数据进行排序处理。
numObservationsTest = numel(XTest);
for i=1:numObservationsTestsequence = XTest{i};sequenceLengthsTest(i) = size(sequence,2);
end
[sequenceLengthsTest,idx] = sort(sequenceLengthsTest);
XTest = XTest(idx);
YTest = YTest(idx);%使用classify进行分类,指定小批量大小27,指定组内数据按照最长的数据填充
miniBatchSize = 27;
YPred = classify(net,XTest, ...'MiniBatchSize',miniBatchSize, ...'SequenceLength','longest');
%计算分类准确度
acc = sum(YPred == YTest)./numel(YTest)

matlab LSTM序列分类的官方示例相关推荐

  1. matlab中如何创建网络,使用深度网络设计器创建简单的序列分类网络

    加载数据 按照 [1] 和 [2] 中的说明加载日语元音数据集.预测变量是包含不同长度序列的元胞数组,特征维度为 12.标签是由标签 1.2.....9 组成的分类向量. [XTrain,YTrain ...

  2. dna序列分类数学建模matlab,数学建模DNA序列分类模型(终稿).doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp生物学 数学建模DNA序列分类模型(终稿).doc32页 本文 ...

  3. 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种

    基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种 ,含数据集可直接运行 完整代码下载地址:基于LSTM三分类的文本情感分 ...

  4. 【LSTM时间序列数据】基于matlab LSTM时间序列数据预测【含Matlab源码 1949期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[LSTM时间序列数据]基于matlab LSTM时间序列数据预测[含Matlab源码 1949期] 获取代码方式2: 付费专栏Matla ...

  5. NLP学习(十三)-NLP实战之LSTM三分类文本情感分析-tensorflow2+Python3

    背景介绍 文本情感分析作为NLP的常见任务,具有很高的实际应用价值.本文将采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种情感的分类器. 本文的目的是快速 ...

  6. 如何 添加 implementation_如何用序列分类方式进行法律要素与当事人关联性分析 | 机器之心...

    在智慧司法领域中,针对法律裁判文书的分析和挖掘已经成为计算法学的研究热点.目前公开的裁判文书资料大都以长篇文本的形式出现,内容主要包含案号.当事人.案由.审理过程.裁判结果.判决依据等,篇幅较长.表述 ...

  7. lstm 文本分类_带有lstm和单词嵌入的灾难推文上的文本分类

    lstm 文本分类 This was my first Kaggle notebook and I thought why not write it on Medium too? Ť他是我第一次Kag ...

  8. 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化

    Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...

  9. MATLAB | MATLAB不会画图?官方团队来教你

    让我看看是哪个小傻瓜还没用过MATLAB官方gallery,常见的图直接MATHWORKS搜索一下就能找到,一些有意思的组合图,以及一些特殊属性的设置MATHWORKS官方是有专门去整理的,虽然一些很 ...

最新文章

  1. php table字段排序,jQuery如何对table进行排序操作的示例详解
  2. CVPR2021|基于分类深度分布网络的单目3D物体检测
  3. Vmware 中Windows和虚拟机共享文件--VMware-tools补丁安装
  4. 线下零售企业在数据驱动上的三个挑战和三条思路
  5. zabbix监控远端主机
  6. PyTorch 入坑五 autograd与逻辑回归
  7. spring学习--AOP--JDK动态代理
  8. 【产品】产品经理PM相关书籍荐读
  9. 华为网络模拟器eNSP安装教程
  10. 仙人掌之歌——路转峰回(2)
  11. 微信小程序前端设计(超级实用哦)
  12. 敏捷 2016:行业分析研讨会
  13. KeyError: 0 与 KeyError: 1(附例子)
  14. STM32F4+W25Q64实现一个U盘
  15. idea项目配置jsp模板
  16. linux上centos镜像磁盘,VirtualBox中配置linuxCentOS的本地磁盘镜像iso作为其软件源
  17. 华为运营商级路由器配置示例 | EVdPdN VPLS over SRv6 BE(CE双归接入)
  18. 渗透测试-不死马的创建和查杀
  19. 印象笔记Markdown思维导图
  20. 【转】让电脑更高效的魔法 – 浅谈高效率PC工作环境的简化、净化与建立方法...

热门文章

  1. 命令编写注册表文件修改注册表项
  2. linux系统配置脚本,Linux系统配置脚本开机自启
  3. php创建无限级树型菜单以及三级联动菜单
  4. C# 托管资源和非托管资源(Dispose、析构函数)
  5. python应用领域介绍
  6. grep搜索子目录中包含某字符串的特定文件
  7. [react] 在React中如何避免不必要的render?
  8. [css] 重置(初始化)css的作用是什么?
  9. [css] 请问display:inline-block在什么时候会显示间隙?
  10. [css] 使用css3实现一个斑马线的效果