深度学习

理解和使用深度学习网络

使用matlab跳转您的DCEST挑战2021

下面的帖子来自布莱恩HemmatMathWorks的音频信号处理开发人员。

声学场景和事件(DCASE)社区的检测和分类创建了一年的研讨会和一系列事件,该系列事件通过从学术和工业背景的研究人员汇集在一起​​来推进计算场景和事件分析中的最先进。

每年都会发布新的和更新的数据集和竞赛,探索不同的应用程序、需求和目标。今年,dcast 2021.任务1a的挑战是执行低复杂度的声学场景分类,该分类对各种录音设备(如录音室质量的麦克风、智能手机和摄像机上的麦克风)具有鲁棒性。其目标是将声音分为机场、地铁站、有轨电车、广场等10个声音场景之一。样本是从布拉格、巴黎和巴塞罗那等城市收集的。

在MATLAB中创建基线

Task 1a的官方基线是用Python发布的,使用TensorFlow进行深度学习,并使用提供的DCASE工具工具箱进行预处理。

我在MATLAB中重新实现了基线。MATLAB实现包含在一个脚本中,使得非专家很容易探索数据,理解基线实现,并修改它以提交。音频工具箱在MATLAB提供函数和应用程序提取音频特征(audiofeatureextractor.)和增强数据(audioDataAugmenter),使其易于探索对系统的修改。

部分挑战是开发一种模型,其中一个模型为128 kB的非零参数。这可以通过开发小型模型来完成,通过修剪模型,或者通过从用于训练的标准32位浮点量化到较少数量的比特来实现。这个Matlab基线代码利用了dlquantizer对象和量化网络使用8位整数与深度学习工具箱模型量化库。

注意:如果你还没有使用MATLAB,深度学习工具箱和音频工具箱,你可以得到一个免费30天试用

量化的基准

应用量子化是一个简单的任务dlquantizer.要使用它,您可以指定要校准的网络和执行环境,然后使用校准数据进行校准。

Quantobj = DlQuantizer(Net,'EcomentionEnvironment','GPU');

dlquantizer对象需要执行校准图像数据存储。包装功能和标签augmentedImageDatastore对象。

augsimdsTrain = augmentedImageDatastore ([numFeatures numHops], trainFeatures trainLables);augsimdsTest = augmentedImageDatastore ([numFeatures numHops], testFeatures testLables);

使用训练集校准dlquantizer目的。

Calresults =校准(Quantobj,Augimdstrain);

一个提示要记住:目前,dlquantizer不支持audiod金宝appataStore输入。要将其与基于音频的数据(在这种情况下,MEL谱图)中使用,必须将培训数据放在内存中,然后将其包装为AugmentedImageDataStore,如上面所示。然后,您将AugmentedImageDataStore指定为校准网络时要使用的校准数据。

MEL谱图提供音频数据的可视化

使用的一个优点dlquantizer它量化到INT8,可以部署到许多嵌入式系统的低精度数据类型。它实现了这种量化结果,具有最小的精度损失,有效地创建了与量化为float16的Python基线相同的网络。

显示深度网络量化器应用程序的操作。您可以使用应用程序版本dlquantizer快速查看哪个层被量化,并且基于数据集的权重,偏置和激活的动态范围

入门工具

这段基线代码的目标是激发您的解决方案,以应对MATLAB中这个有趣的挑战。Audio Toolbox中的扩展功能可用于启动您的设计探索。结果是一个更小、更包含的基线,更容易改进。当Python基线量化为float16时,int8提供了更小的模型和更快的推断。

基线在GitHub你可以下载一个免费试用MATLAB。

我们希望这个基线鼓励新成员加入DCESE社区,参加年度比赛,并推进最先进的。

下载代码或分支,然后开始!如果你有任何问题,请在下面的评论中告诉我。

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击这里登录到您的MathWorks帐户或创建一个新帐户。