0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不用写一行就带就可以参加 Kaggle,这个真香!

WpOh_rgznai100 来源:lq 2019-07-18 10:59 次阅读

【导读】给大家分享一些 Kaggle 上的资源,如 Kaggle 开放的数据集,也会分享一些好的竞赛方案或有意义的竞赛经验,帮助大家成长。今天,我们要给大家介绍的这个工具特别推荐给以往只能仰望别人的,缺乏竞赛技能和经验的朋友,你不需要写一行代码就可以参与 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 npimport pandas as pdimport librosa as lrimport tensorflow as tffrom tqdm import tqdmmodel = tf.keras.models.load_model('../input/freesound-audio-tagging-2019-model/resnet50.h5', compile=False) ##Changedf = pd.read_csv('../input/freesound-audio-tagging-2019/sample_submission.csv', index_col='fname') ##Changedef 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 spectrogramfor 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] = scoresdf.to_csv('submission.csv')

竞赛地址:

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26409

    浏览量

    264011
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24347
  • 训练模型
    +关注

    关注

    1

    文章

    35

    浏览量

    3755

原文标题:不写一行代码,也能玩转Kaggle竞赛?

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在uCGUI的回调函数里加了代码,stm32无法启动怎么解决?

    我是个初学者。最近在个uCGUI上的小应用的时候遇到了这样的问题,我在MULTIEDIT控件的回调函数里加了一行代码,运行我自己
    发表于 04-24 07:06

    STM32CUBEMX4.22.1在main函数里面添加一行语句就死机的原因?

    用STM32CUBEMX4.22.1版本,内嵌FREERTOS,想把4路ADC通过DMA方式采集,但是在main函数里面添加一行语句:HAL_ADC_Start_DMA( hadc1, ADC_DMA_Buf[0],4);后就死机了
    发表于 04-11 07:57

    CYT2B7使用SDL库,设置GPIO时只用设置outVal/driveMode/hsiom就可以了吗?

    再请问大家下,CYT2B7使用SDL库,设置GPIO时只用设置outVal/driveMode/hsiom就可以了吗 还有怎么读取GPIO引脚电平,要用哪个函数来读取, 还有就是,是否能单独
    发表于 02-02 07:02

    用AD9970采集CCD的像素,CLPOB与PBLK具体是用在一行像素的哪个位置?

    最近在搞个项目,用AD9970采集CCD的像素,但是关于AD9970的配置我有点不明白,CLPOB与PBLK具体是用在一行像素的哪个位置,还有就是如何同步LVDS输出,与像素的边界对齐,让FPGA这边能采集到完整的一行数据
    发表于 01-10 07:04

    TLM4644封装上最后一行的标识有啥意义?

    TLM 4644封装上最后一行的标识有啥意义? 代表什么参数吗? 比如 N37467
    发表于 01-03 10:48

    ADIS16405 RST管脚是否需要接个复位电路?还是空着就可以了?

    请教各位高手,关于ADIS16405的几个问题: 1)硬件接线: RST管脚是否需要接个复位电路?还是空着就可以了? 2)READY信号是否可以不用,而用定时中断的方法直接从SPI
    发表于 01-02 07:21

    请问ADE7953连接罗氏线圈时,电流通道只用低通滤波就可以了吗?

    您好,请问ADE7953连接罗氏线圈时,电流通道只用低通滤波就可以了吗?是否还需要其它硬件?软件配置时,是否只开启数字滤波器就可以了?我现在开启数字滤波器后,外部不加电流情况下,输出总数在跳动,不能得到个稳定的值,麻烦哪位给点
    发表于 12-25 07:44

    AD9220在用FPGA控制时是不是可以直接用PLL产生的10M时钟就可以

    AD9220在用FPGA控制时是不是可以直接用PLL产生的10M时钟就可以?我使用内部参考2.5V,将输入端与地短接时,输出的数据是0B80跟0380(13位位OTR位),输入固定的电压值时输出的数据也不是固定的值,而且数据差
    发表于 12-21 07:12

    了解这些就可以搞懂 IGBT

    了解这些就可以搞懂 IGBT
    的头像 发表于 11-24 15:47 499次阅读
    了解这些<b class='flag-5'>就可以</b>搞懂 IGBT

    MM420前端只需要个3RV断路器就可以了吗?

    前端380的电下来,经过这个3RV,再过熔断器,就可以直接进变频器供电? 还是需要再加个空开(该选多大的呢?) 、漏保?
    发表于 11-23 06:42

    有源晶振和无源晶振的区别是什么?单片机的晶振只要频率一样就可以通用吗?

    有源晶振和无源晶振的区别是什么?单片机的晶振只要频率一样就可以通用吗? 有源晶振和无源晶振是电子器件中常见的两种振荡器。它们的区别在于它们的工作原理、性能特点以及适用场景不同。 1. 工作原理
    的头像 发表于 11-22 16:37 886次阅读

    把高压同步电机的励磁电源拿掉后是否就可以当作异步电机使用了?

    把高压同步电机的励磁电源拿掉后是否就可以当作异步电机使用了呢?
    发表于 11-20 06:30

    PLC控制伺服到底需要哪些信号就可以实现定位控制了?

    PLC控制伺服到底需要哪些信号就可以实现定位控制了?下面给大家分享两种控制。
    发表于 06-06 09:49 803次阅读
    PLC控制伺服到底需要哪些信号<b class='flag-5'>就可以</b>实现定位控制了?

    新手求助删掉某一行LOG_I会导致hard fault on handler?

    LOG_I就是个普通打印一行调试信息而已… LOG_I(\"rec_time::%s\", ctime(cur_time)); 注意。。是删掉这个LOG_I会导致 hard
    发表于 05-17 10:14

    ESPlorer连接正常,但仍然写了一行乱码是怎么回事?

    。150704.bin下载的固件相同。它说它不能自动检测固件。但是,它会准确地写入它是什么固件。或者它应该告诉更多关于固件的信息?但是在这个信息之前它写了一行乱码。我在“请重置模块或继续”时没有做任何事情,它只是继续打印到终端
    发表于 05-04 08:00