主要内容

在Simulink中分类和更新网络状态

这个例子展示了如何在Simulink®中对训练过的循环神经网络的数据进行分类有状态的分类块。这个例子使用了预训练的长短时记忆(LSTM)网络。

负载Pretrained网络

负载JapaneseVowelsNet在[1]和[2]中描述的日语元音数据集上训练的预训练长短期记忆(LSTM)网络。该网络训练的序列按序列长度排序,小批大小为27。

负载JapaneseVowelsNet

查看网络架构。

analyzeNetwork(净);

负载测试数据

加载日语元音测试数据。XTest是包含370个长度不等的12维序列的单元格数组。tt是标签“1”,“2”,…“9”,对应9位说话者。

创建时间表数组思敏带有时间戳的行和重复的副本X

(XTest, tt) = japaneseVowelsTestData;X = XTest {94};numTimeSteps =大小(X, 2);思敏=时间表(repmat (X 1 4)”,“步伐”秒(0.2));

Simulink数据分类模型

用于数据分类的Simulink模型包含一个有状态的分类块来预测标签和从工作空间块在时间步骤中加载输入数据序列。

若要在模拟过程中将循环神经网络的状态重置为初始状态,请将有状态的分类块内复位子系统并使用重置控制信号作为触发器。

open_system (“StatefulClassifyExample”);

配置仿真模型

的模型配置参数有状态的分类块。

set_param (“StatefulClassifyExample /状态分类”“NetworkFilePath”“JapaneseVowelsNet.mat”);set_param (“StatefulClassifyExample”“SimulationMode”“正常”);

运行仿真

计算响应JapaneseVowelsNet网络,运行模拟。预测标签保存在MATLAB®工作区中。

= sim卡(“StatefulClassifyExample”);

将预测的标签绘制在阶梯图中。该图表显示了预测在时间步骤之间的变化。

标签=挤压(out.YPred.Data (1: numTimeSteps, 1));图楼梯(标签,“o”xlabel([1 numTimeSteps])“时间步”) ylabel (“预测阶级”)标题(“随时间步骤的分类”

将预测与真实标签进行比较。画一条水平线显示观察的真实标签。

trueLabel =双(tt (94));持有线([1 numTimeSteps], [trueLabel trueLabel),...“颜色”“红色”...“线型”“——”)传说([“预测”“真正的标签”)轴([1 numTimeSteps+1 0 9]);

参考文献

[1]工藤先生,富山先生,Shimbo先生。“利用穿过区域的多维曲线分类”。模式识别的字母。第20卷第11-13期,第1103-1111页。

[2]UCI机器学习库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels

另请参阅

|||

相关的话题

Baidu
map