使用迁移学习对音频数据集进行分类
有时,可用于训练网络的数据量不足以完成手头的任务。转移学习有可能是解决这个问题的方法。不是从头开始训练网络,而是用已经在不同但相关的任务上训练过的网络作为起点。
下载 ESC-50 数据集。
显示完整的 Wolfram 语言输入
导入元数据。该数据集是 2000 个环境录音的标记数据集合。这些文件都是时长为五秒钟的录音,分成 50 个语义类。
显示完整的 Wolfram 语言输入
查看元数据中的样本。
将数据集划分为训练子集和测试子集。
查看一下可用的类别。
通过去掉 AudioIdentify 网络中的分类器层来构造特征提取器网络。
构建一个简单的线性分类器网络,将该网络添加到特征提取器上。
可以预先计算特征提取器网络的结果并训练分类器,而不是重新训练整个网络并在 NetTrain 中指定 LearningRateMultipliers 选项,仅对分类层进行训练。这样可避免对整个网络进行多余的计算。
用 NetTrain 训练分类器网络。
用 NetJoin 连接特征提取器网络和训练过的分类器。
用 ClassifierMeasurements 在测试数据上计算准确性,并绘制最差的四个类的混淆矩阵。