在Simulink中分类和更新网络状态金宝app
这个例子展示了如何在Simulink®中为训练好的循环神经网络分类数据金宝app有状态的分类
块。本例使用预训练的长短期记忆(LSTM)网络。
负荷预训练网络
负载JapaneseVowelsNet
,一个预先训练的长短期记忆(LSTM)网络,在日语Vowels数据集上训练,如[1]和[2]所述。该网络在按序列长度排序的序列上训练,迷你批大小为27。
负载JapaneseVowelsNet
查看网络结构。
analyzeNetwork(净);
负载测试数据
加载日语元音测试数据。XTest
是包含370个不同长度的12维序列的单元格数组。tt
是标签“1”,“2”,…“9”,对应9个说话者。
创建时间表数组思敏
有时间戳的行和重复的X
.
[XTest,TTest] =日本evowelstestdata;X = XTest{94};numTimeSteps = size(X,2);simin =时间表(repmat(X,1,4)',“步伐”秒(0.2));
金宝app数据分类的Simulink模型
用于数据金宝app分类的Simulink模型包含一个有状态的分类
块来预测标签和从工作空间
块在时间步骤中加载输入数据序列。
为了在模拟过程中将递归神经网络的状态重置为初始状态,将有状态的分类
块中的复位子系统
并使用重置
控制信号作为触发器。
open_system (“StatefulClassifyExample”);
配置仿真模型
的模型配置参数有状态的分类
块。
set_param (“StatefulClassifyExample /状态分类”,“NetworkFilePath”,“JapaneseVowelsNet.mat”);set_param (“StatefulClassifyExample”,“SimulationMode”,“正常”);
运行模拟
计算的响应JapaneseVowelsNet
网络,运行模拟。预测标签保存在MATLAB®工作空间中。
Out = sim(“StatefulClassifyExample”);
在阶梯图中绘制预测的标签。图表显示了预测如何在时间步骤之间变化。
标签=挤压(out.YPred.Data(1:numTimeSteps,1));图楼梯(标签,“o”xlim([1 numTimeSteps])“时间步”) ylabel (“预测阶级”)标题(“按时间步骤分类”)
将预测结果与真实标签进行比较。画一条水平线来表示观测的真实标记。
trueLabel = double(TTest(94));持有在line([1 numTimeSteps],[trueLabel trueLabel],...“颜色”,“红色”,...“线型”,“——”)传说([“预测”“真正的标签”[1 numTimeSteps+1 0 9]);
参考文献
[1]工藤M.,富山J.,辛波M.。“使用穿过区域的多维曲线分类”模式识别信.第20卷,11-13号,第1103-1111页。
[2]UCI机器学习库:日语元音数据集.https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels