【導讀】給大家分享一些 Kaggle 上的資源,如 Kaggle 開放的數(shù)據(jù)集,也會分享一些好的競賽方案或有意義的競賽經(jīng)驗,幫助大家成長。今天,我們要給大家介紹的這個工具特別推薦給以往只能仰望別人的,缺乏競賽技能和經(jīng)驗的朋友,你不需要寫一行代碼就可以參與 Kaggle 競賽,甚至連安裝環(huán)境都免了。是不是很神奇?下面我們一起 get 一下這個“真香”的工具!
參賽項目
Freesound Audio Tagging 2019
Kaggel 的競賽項目 Freesound Audio Tagging 2019,同時也是 DCASE 2019 挑戰(zhàn)賽的任務之一(Task 2),今天不對這個競賽做過多介紹,感興趣的朋友們可以通過我們下面給出的鏈接訪問。
Freesound Audio Tagging 2019 是由 Freesound(MTG?—?Universitat Pompeu Fabra)和 Google 機器感知組舉辦的,數(shù)據(jù)通過 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 技術(shù)的不斷發(fā)展與落地,有越來越多的平臺和工具可供大家使用,這些平臺針對不同領(lǐng)域、不同層次的開發(fā)者和學習者,只要你想學就有辦法。但問題是,對于剛?cè)腴T,沒有多少經(jīng)驗,對 TensorFlow、PyTorch 等工具和框架也不熟悉的人,能參加這樣的競賽嗎?
不會寫代碼,也不會 TensorFlow、PyTorch,怎么訓練模型?
Peltarion 平臺 你值得擁有,訓練你的模型只需 5 步!
Peltarion是怎樣的一個平臺?它部署在云端,在平臺上你只需要簡單的“拖拉拽”就可以從0到1完成一個 AI 模型的創(chuàng)建到部署。平臺給初始者提供了免費使用50 小時、共有50 GB的 GPU存儲容量。

AI科技大本營也注冊了一個賬號,準備利用一下免費資源把模型跑起來。注冊賬號很簡單,先用一個郵箱在平臺上注冊賬號,然后在郵箱中完成驗證,最后設置一個密碼——done。接下來就可以開始進入“正餐”環(huán)節(jié),為了能讓大家使用該平臺,原作者和 Kaggle 競賽聯(lián)合起來,讓大家可以邊學邊用。

具體步驟示例
0、獲取數(shù)據(jù)集
模型預訓練中要使用的數(shù)據(jù)集是 FSDKaggle 2019,已經(jīng)在 Peltarion 平臺經(jīng)過預處理,所以音頻文件經(jīng)過轉(zhuǎn)化,與 index.csv 一起保存為 Numpy 文件格式,所以,大家直接下載 dataset.zip 即可。
下載地址:
https://www.kaggle.com/carlthome/preprocess-freesound-data-to-train-with-peltarion/output

1、Project:一鍵創(chuàng)建
直接 New 一鍵即可建立一個新 project,可以保存為“project v1”。

2、數(shù)據(jù)集:Upload 或者 Import
新建的 project v1 在左側(cè)就可以看到,點擊 Datasets → New dataset 就可以上傳數(shù)據(jù)集。然后選擇剛剛下載的數(shù)據(jù)集,等待上傳,最后命名保存為“Audio”。

默認 80%的數(shù)據(jù)集作為訓練集,其余20% 用于測試集。在頂部的 New feature set進行捆綁,除 fname 外所有的功能,保存為“Lable”。右上角保存 version 后,就可以進一步建模了。

3、Modeling:一鍵創(chuàng)建深度學習項目
New Experiment 后進入 Modeling 界面,你可以在右側(cè)看到“Build”和“Settings”兩個工具選項幫助進行編譯模型。在這個示例中,訓練的是如下圖所示的聲譜圖,以完成圖片分類任務。
在該任務中,我們可以選擇 CNN 網(wǎng)絡模型,比如 ResNetv2 large 50。(右側(cè) Build-Snippets 中,有一些不同任務的模型可供選擇。)
接下來幾個步驟中,我們就在右側(cè)欄中設定模型的關(guān)鍵配置:

(1)在 Blocks 中添加 Input,F(xiàn)eature 選擇為 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 經(jīng)常在模型中被選為激活函數(shù);
(8)在 Target 塊 之前再添加一個 Dense 塊,節(jié)點設置為 80,激活 sigmoid;
(9)將 Target塊 的 Feature 改為 Lable,Loss 為 Binary crossentropy;
(10)跳轉(zhuǎn)到 Settings 選項卡,配置模型的步長、epoch、優(yōu)化器等;Batch 設為 28,適合 GPU 內(nèi)存、epoch 設為 30,模型足以收斂、Optimizer 選為 Adam,這是一個很常用的標準優(yōu)化器;
(11)上面的配置都完成后,點擊 RUN 就可以讓模型跑起來了。


4、Evaluating
模型訓練后,我們還需要對模型進行評估,在 Evaluating 界面,可以看到模型訓練的實時數(shù)據(jù),我們關(guān)注的指標是 Precision 和 Recall。模型訓練完成后,可以直接下載,如果訓練了多個模型,記得下載模型精度最高的。

5、提交模型

首先,進入競賽頁面。點擊 New Kernel 連接到 Notebook,將下載的模型 H5 文件作為數(shù)據(jù)集添加。溫馨提示:要使用正確的 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
通過上面的示例,大家也發(fā)現(xiàn)了,訓練模型的每一個步驟都在平臺上內(nèi)置好了,大家只需要托拉拽,勾勾選選的操作就可以訓練你的模型了,另外還有一些免費的 GPU 資源、內(nèi)存使用。對于代碼不會寫,框架不會寫的你們來說簡直不要太好用!營長的模型要準備跑起來了,你們的呢?
-
AI
+關(guān)注
關(guān)注
91文章
39865瀏覽量
301508 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1236瀏覽量
26207 -
訓練模型
+關(guān)注
關(guān)注
1文章
37瀏覽量
4073
原文標題:不寫一行代碼,也能玩轉(zhuǎn)Kaggle競賽?
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
不用寫一行就帶就可以參加 Kaggle,這個真香!
評論