整理 | Jane

出品 | AI科技大本营(ID:rgznai100)

今天,我们要给大家介绍的这个工具特别推荐给以往只能仰望别人的,缺乏竞赛技能和经验的朋友,你不需要写一行代码就可以参与 Kaggle 竞赛,甚至连安装环境都免了。是不是很神奇?下面我们一起 get 一下这个“真香”的工具!

参赛项目,Freesound Audio Tagging 2019

Kaggel 的竞赛项目 Freesound Audio Tagging 2019,同时也是 DCASE 2019 挑战赛的任务之一(Task 2),今天不对这个竞赛做过多介绍,感兴趣的朋友们可以通过我们下面给出的链接访问。

Freesound Audio Tagging 2019 是由 Freesound(MTG — Universitat Pompeu Fabra)和 Google 机器感知组举办的,数据通过 Freesound Annotator 收集,比赛参考论文:

(1)《Audio tagging with noisy labels and minimal supervision》

https://arxiv.org/pdf/1906.02975.pdf

(2)《FREESOUND DATASETS: A PLATFORM FOR THE CREATION OF OPEN AUDIO DATASETS》

https://ismir2017.smcnus.org/wp-content/uploads/2017/10/161_Paper.pdf

随着 AI 技术的不断发展与落地,有越来越多的平台和工具可供大家使用,这些平台针对不同领域、不同层次的开发者和学习者,只要你想学就有办法。但问题是,对于刚入门,没有多少经验,对 TensorFlow、PyTorch 等工具和框架也不熟悉的人,能参加这样的竞赛吗?

不会写代码,也不会 TensorFlow、PyTorch,怎么训练模型?


Peltarion 平台 你值得拥有,训练你的模型只需 5 步!

Peltarion 是怎样的一个平台?它部署在云端,在平台上你只需要简单的“拖拉拽”就可以从0到1完成一个 AI 模型的创建到部署。平台给初始者提供了免费使用50 小时、共有 50 GB 的 GPU 存储容量。

AI科技大本营也注册了一个账号,准备利用一下免费资源把模型跑起来。注册账号很简单,先用一个邮箱在平台上注册账号,然后在邮箱中完成验证,最后设置一个密码——done。接下来就可以开始进入“正餐”环节,为了能让大家使用该平台, 原作者和 Kaggle 竞赛联合起来,让大家可以边学边用。

具体步骤示例

0、获取数据集

模型预训练中要使用的数据集是 FSDKaggle 2019,已经在 Peltarion 平台经过预处理,所以音频文件经过转化,与 index.csv 一起保存为 Numpy 文件格式,所以,大家直接下载 dataset.zip 即可。

下载地址:

https://www.kaggle.com/carlthome/preprocess-freesound-data-to-train-with-peltarion/output

1、Project:一键创建 

直接 New 一键即可建立一个新 project,可以保存为“project v1”。

2、数据集:Upload 或者 Import

新建的 project v1 在左侧就可以看到,点击 Datasets → New dataset 就可以上传数据集。然后选择刚刚下载的数据集,等待上传,最后命名保存为“Audio”。

默认 80% 的数据集作为训练集,其余 20% 用于测试集。在顶部的 New feature set 进行捆绑,除 fname 外所有的功能,保存为“Lable”。右上角保存 version 后,就可以进一步建模了。

3、Modeling:一键创建深度学习项目

New Experiment 后进入 Modeling 界面,你可以在右侧看到“Build”和“Settings”两个工具选项帮助进行编译模型。在这个示例中,训练的是如下图所示的声谱图,以完成图片分类任务。

在该任务中,我们可以选择 CNN 网络模型,比如 ResNetv2 large 50。(右侧 Build-Snippets 中,有一些不同任务的模型可供选择。)

接下来几个步骤中,我们就在右侧栏中设定模型的关键配置:

(1)在 Blocks 中添加 Input,Feature 选择为 fname;

(2)添加 Batch normalization,勾选 Trainable;

(3)添加 Reshape,设置 Target Shape 为(256,256,1);

(4)在 Snippets 中添加 ResNetv2 large 50;

(5)单击并删除 ResNetv2 large 50 顶部“Input” 模块;

(6)将 BN 块连接到 ResNetv2 large 50 上

(7)更改 Dense 块 中 Activation 为 ReLU,ReLU 经常在模型中被选为激活函数;

(8)在 Target 块 之前再添加一个 Dense 块,节点设置为 80,激活 sigmoid;

(9)将 Target块 的 Feature 改为 Lable,Loss 为 Binary crossentropy;

(10)跳转到 Settings 选项卡,配置模型的步长、epoch、优化器等;Batch 设为 28,适合 GPU 内存、epoch 设为 30,模型足以收敛、Optimizer 选为 Adam,这是一个很常用的标准优化器;

(11)上面的配置都完成后,点击 RUN 就可以让模型跑起来了。

4、Evaluating

模型训练后,我们还需要对模型进行评估,在 Evaluating 界面,可以看到模型训练的实时数据,我们关注的指标是 Precision 和 Recall。模型训练完成后,可以直接下载,如果训练了多个模型,记得下载模型精度最高的。

5、提交模型

首先,进入竞赛页面。点击 New Kernel 连接到 Notebook,将下载的模型 H5 文件作为数据集添加。温馨提示:要使用正确的 H5 文件路径,添加下面这行代码到 Kaggle notebook 中运行,此处注意保存路径,后面会用到。

!find ../input-name '*.h5'

下面这段代码可以直接复制-粘贴到 Kaggle notebook 中;将模型变量路径更改为前面保存的路径,最后点击 Commit,完成。

import numpy as np
import pandas as pd
import librosa as lr
import tensorflow as tf
from tqdm import tqdm   model = tf.keras.models.load_model('../input/freesound-audio-tagging-2019-model/resnet50.h5', compile=False) ##Change
df = pd.read_csv('../input/freesound-audio-tagging-2019/sample_submission.csv', index_col='fname') ##Change   def preprocess(wavfile):    # Load roughly 8 seconds of audio.  samples = 512*256 - 1  samplerate = 16000 waveform = lr.load(wavfile, samplerate, duration=samples/samplerate)[0]
# Loop too short audio clips.
if len(waveform) < samples:  waveform = np.pad(waveform, (0, samples - len(waveform)), mode='wrap')  # Convert audio to log-mel spectrogram. spectrogram = lr.feature.melspectrogram(waveform, samplerate, n_mels=256) spectrogram = lr.power_to_db(spectrogram)  spectrogram = spectrogram.astype(np.float32)   return spectrogram  for fname, scores in tqdm(df.iterrows(), total=len(df), desc='Predicting'): spectrogram = preprocess('../input/freesound-audio-tagging-2019/test/' + fname) scores = model.predict_on_batch(spectrogram[None, ...])[0] df.loc[fname] = scores df.to_csv('submission.csv')

竞赛地址:

https://www.kaggle.com/c/freesound-audio-tagging-2019

通过上面的示例,大家也发现了,训练模型的每一个步骤都在平台上内置好了,大家只需要托拉拽,勾勾选选的操作就可以训练你的模型了,另外还有一些免费的 GPU 资源、内存使用。对于代码不会写,框架不会写的你们来说简直不要太好用!笔者的模型要准备跑起来了,你们的呢?

原文参考:

https://towardsdatascience.com/how-to-participate-in-a-kaggle-competition-with-zero-code-f017918d2f08


【END】

 热 文 推 荐 

☞阿里云技术战略总监陈绪:45 岁开源老兵“中年花开”阿里云 | 人物志

☞深度学习在人脸检测中的应用 | CSDN 博文精选

☞10 余年前端老兵亲述:前端的未来在哪里?| 技术头条

☞中国程序员非洲历险记:与死神擦肩而过

☞中国有微信和支付宝, 你为啥还费力不讨好去做区块链? | 人物志

☞数据库风云:老骥伏枥,新秀辈出

☞智能文本信息抽取算法的进阶与应用

☞正态分布为何如此重要?

☞泪目!Linux之父:我就是觉得苹果太没意思!

你点的每个“在看”,我都认真当成了喜欢

不写一行代码就能玩转 Kaggle 竞赛?相关推荐

  1. 不写一行代码,也能玩转Kaggle竞赛?

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) [导读]AI科技大本营会给大家分享一些 Kaggle 上的资源,如 Kaggle 开放的数据集,也会分享一些好的竞赛方案或有意 ...

  2. 【效率】微软开源最强Python自动化神器!不用写一行代码!

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  3. 太赞了,使用应用魔方 AppCube,我没有写一行代码就开发出了一款投票微信小程序

    低代码开发近些年非常火热,所谓低代码开发就是无需写太多的代码甚至有些简单应用不用写代码就能构建出一款应用,低代码开发平台非常多,其中我比较熟悉的就是华为的应用魔方 AppCube,本文就带着大家用应用 ...

  4. 飞鸽传书每写一行代码都会有新的成就

    喜欢的人,日子过得非常开心,飞鸽传书每写一行代码都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起. 不喜欢的人,飞鸽传书x坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改 ...

  5. MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯

    MATLAB&STM32CubeMX联合开发系列--不用手写一行代码就能实现CAN通讯 从第一次搭建好MATLAB和STM32CubeMX的联合开发环境有一段时间了,之前已经发布了两个实例分享 ...

  6. 快速实现免费的个人免签收款功能(不写一行代码)

    最近一直在研究使用冰狐智能辅助的"自动构建"功能在不编程的情况如何实现各种好玩的东东,由于自己利用业余时间开发的小工具需要用到收款功能,于是自然想到用"自动构建" ...

  7. 不写一行代码,也能解释XML,因为是JAVA

    不写一行代码,也能解释XML,因为是JAVA. 整个过程就三个步骤 1.XML转换成XSD 2.XSD生成JAVA Class 3.调用unmarshal实现转换结果 具体实例: 1.假设有一个XML ...

  8. 不写一行代码(一):实现安卓基于GPIO的LED设备驱动

    文章目录 系列文章 一.前言 二.准备工作 2.1 内核版本 2.2 内核文档:bindings->leds 2.3 文档解析: leds-gpio.txt 三.编写DTS 3.1 查原理图,挑 ...

  9. win7滑动关机代码bat_写一行代码实现滑动关机电脑

    ياخشىمۇ سىلەر؟بۈگۈن بىز بىر قۇر كود يىزىپلا كومپىيوتىرنى سىيرىپ ئۆچۈرۈش(滑动关机) نى ئۈگۈنىمىز ! نەتىجە: ...

最新文章

  1. 关于Iframe之间以及与父窗体的值传递
  2. java float 转double_将float转换为double而不会丢失精度
  3. LVS负载均衡下session共享的实现方式-持久化连接
  4. MySQL之架构与历史(二)
  5. gh0st源码分析与远控的编写(二)
  6. Debian 8开启sftp服务
  7. LeetCode 45. 跳跃游戏 II(贪心/BFS,难)
  8. 618哪家空调最受欢迎?格力奥克斯互撕 友商却笑到最后
  9. 自己编译vim,解决Ubuntu 12.04 terminal里执行gvim会挂起的问题
  10. OObjective-c UIView 蒙层
  11. 深度学习:YOLO算法与其优化
  12. 2048小游戏——网页版(基础篇)
  13. 麒麟V10系统安装教程
  14. 微信能上网但是浏览器无法上网,原因在于上次关机时加速器忘记关闭,解决办法如下
  15. 动态绘制图形的基本思路
  16. 您不知道Android的ES File Explorer可以做的19件事
  17. 计算机网卡更改mac地址,苹果MAC地址怎么改?MAC网卡物理地址修改的详细方法
  18. [csh]配置你的csh/tcsh
  19. 图书信息管理系统(数据结构顺序表,c语言版)
  20. comp9334-proj2

热门文章

  1. eureka集群 ha_EurekaServer集群配置
  2. python内存管理错误的是_解读Python内存管理机制(转载)
  3. LeetCode 题练习记录
  4. 记录——《C Primer Plus (第五版)》第十一章编程练习第四题
  5. Linux C++使用MySQL数据库
  6. 单板剥皮机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. android获取sd的大小,Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法...
  8. 第15章 音乐可视化(《Python趣味创意编程》教学视频)
  9. 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
  10. kaggle房价预测特征意思_Kaggle初探--房价预测案例之数据分析