AI 科技评论按:日前,2019 年 Kaggle Freesound 音频标注挑战赛宣告完结,比赛结果也终于出炉。参赛者之一 Eric BOUTEILLON 是全球无缝支付解决方案提供商银捷尼科集团(Ingenico Group)的一位产品负责人,他提交的解决方案在本次比赛中进入前 2% 排名,取得了第 8 名的成绩,日前,他将解决方案分享在了 Github 上,详细地介绍了该方案的复现步骤。
https://www.kaggle.com/c/freesound-audio-tagging-2019/leaderboard
本开源库的出发点
本开源库提供了一个用于创建高效音频标注系统的半监督预热管道,以及面向作者命名为 SpecMix 的多标签音频标注的一种新的数据增强技术。
在提交给 2019 年 Kaggle freesound 音频标注挑战赛的音频标注系统中,我们应用了这些新技术。该挑战赛是声学场景和事件检测和分类挑战(DCASE 2019)的第二项任务挑战,目标包括使用在少量可靠、手动标注的数据以及拥有大规模词汇设置的多标签音频标注任务中的大量噪声网络音频数据上训练的机器学习技术,来为每一测试帧预测音频标签。
TL;DR – 给我代码!
在挑战赛的公共排行榜上,该解决方案通过 Jupyter notebooks 运行得到的 lwlrap 值为 0.738,也就是说在本次比赛中排名第 8。
训练 CNN 模型 1:
https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-cnn-model1.ipynb)
训练 VGG16 模型:
https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-vgg16.ipynb
推理内核:
https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/inference-kernel.ipynb
你还可以在公开的 Kaggle 数据集中找到 CNN-model-1 和 VGG-16 训练的权重结果。需要注意的是,因为配额原因,作者没有使用 git-lfs 将这些权重结果存储下来。
安装
该挑战赛要求参赛者在 Kaggle 内核中执行推理而不改变其配置。因此,参赛者在比赛期间使用与 Kaggle 内核配置相同版本的 pytorch 和 fastai 来加载本地生成的 CNN 权重是非常重要的。因此,参赛者选择使用 pytorch 1.0.1 和 fastai 1.0.51 非常重要。
安装方法 1:使用原作者的方法
要获得与我的本地系统相同的配置,需在 GNU Linux Ubuntu 18.04.2 LTS 上测试以下步骤:
1、克隆这个开源库:
2、安装 anaconda3:
https://docs.anaconda.com/anaconda/install/
3、输入 linux 终端:
现在你已经准备好了!
注意:我的配置已经安装了 CUDA 10,所以你可能必须根据自己在 spec-file.txt 中的配置调整 pytorch 和 cudatoolkit 的版本。
安装方法 2 :使用 conda 推荐的软件包
这个方法不能保证获得与作者相同的配置,因为 conda 可能会更新安装包。
1、克隆这个开源库:
2、安装 anaconda3
3、输入 linux 终端:
- 我的配置已经安装了 CUDA 10,所以你可能需要根据自己的配置调整 pytorch 和 cudatoolkit 的版本
- 你获得的提醒可能不一致,因为我们使用的是 libjpeg-turbo
硬件/软件
在挑战赛期间,我使用了如下硬件/软件配置:
- 英特尔酷睿 i7 4790k
- 英伟达 RTX 2080 ti
- 24 GB RAM
- Ubuntu 18.04.2 LTS
- 安装的 python 软件包的详细列表,另外在 requirements.txt 和 spec-file.txt 中可以获取 conda(非常必要)。
- 英伟达驱动程序 418.67, CUDA 10.1, CuDNN 7.3.1
复现结果
1、从 Kaggle 下载数据集:
https://www.kaggle.com/c/freesound-audio-tagging-2019/data
2、(选择项)从 Kaggle 下载我的权重数据集:
https://www.kaggle.com/ebouteillon/freesoundaudiotagging2019ebouteillonsolution
3、解压 input 文件夹解压数据集,使你的环境如下:
3、输入命令行:
打开网页浏览器,然后选择要执行的内容。推荐顺序如下:
- training-cnn-model1.ipynb(https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-cnn-model1.ipynb)
- training-vgg16.ipynb(https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/training-vgg16.ipynb)
- inference-kernel.ipynb(https://github.com/ebouteillon/freesound-audio-tagging-2019/blob/master/code/inference-kernel.ipynb)
- 首先运行 training-*.ipynb,训练其中一个模型。