【導(dǎo)讀】給大家分享一些 Kaggle 上的資源,如 Kaggle 開放的數(shù)據(jù)集,也會分享一些好的競賽方案或有意義的競賽經(jīng)驗(yàn),幫助大家成長。今天,我們要給大家介紹的這個工具特別推薦給以往只能仰望別人的,缺乏競賽技能和經(jīng)驗(yàn)的朋友,你不需要寫一行代碼就可以參與 Kaggle 競賽,甚至連安裝環(huán)境都免了。是不是很神奇?下面我們一起 get 一下這個“真香”的工具!
參賽項(xiàng)目
Freesound Audio Tagging 2019
Kaggel 的競賽項(xiàng)目 Freesound Audio Tagging 2019,同時也是 DCASE 2019 挑戰(zhàn)賽的任務(wù)之一(Task 2),今天不對這個競賽做過多介紹,感興趣的朋友們可以通過我們下面給出的鏈接訪問。
Freesound Audio Tagging 2019 是由 Freesound(MTG?—?Universitat Pompeu Fabra)和 Google 機(jī)器感知組舉辦的,數(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ā)者和學(xué)習(xí)者,只要你想學(xué)就有辦法。但問題是,對于剛?cè)腴T,沒有多少經(jīng)驗(yàn),對 TensorFlow、PyTorch 等工具和框架也不熟悉的人,能參加這樣的競賽嗎?
不會寫代碼,也不會 TensorFlow、PyTorch,怎么訓(xùn)練模型?
Peltarion 平臺 你值得擁有,訓(xùn)練你的模型只需 5 步!
Peltarion是怎樣的一個平臺?它部署在云端,在平臺上你只需要簡單的“拖拉拽”就可以從0到1完成一個 AI 模型的創(chuàng)建到部署。平臺給初始者提供了免費(fèi)使用50 小時、共有50 GB的 GPU存儲容量。
AI科技大本營也注冊了一個賬號,準(zhǔn)備利用一下免費(fèi)資源把模型跑起來。注冊賬號很簡單,先用一個郵箱在平臺上注冊賬號,然后在郵箱中完成驗(yàn)證,最后設(shè)置一個密碼——done。接下來就可以開始進(jìn)入“正餐”環(huán)節(jié),為了能讓大家使用該平臺,原作者和 Kaggle 競賽聯(lián)合起來,讓大家可以邊學(xué)邊用。
具體步驟示例
0、獲取數(shù)據(jù)集
模型預(yù)訓(xùn)練中要使用的數(shù)據(jù)集是 FSDKaggle 2019,已經(jīng)在 Peltarion 平臺經(jīng)過預(yù)處理,所以音頻文件經(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è)就可以看到,點(diǎn)擊 Datasets → New dataset 就可以上傳數(shù)據(jù)集。然后選擇剛剛下載的數(shù)據(jù)集,等待上傳,最后命名保存為“Audio”。
默認(rèn) 80%的數(shù)據(jù)集作為訓(xùn)練集,其余20% 用于測試集。在頂部的 New feature set進(jìn)行捆綁,除 fname 外所有的功能,保存為“Lable”。右上角保存 version 后,就可以進(jìn)一步建模了。
3、Modeling:一鍵創(chuàng)建深度學(xué)習(xí)項(xiàng)目
New Experiment 后進(jìn)入 Modeling 界面,你可以在右側(cè)看到“Build”和“Settings”兩個工具選項(xiàng)幫助進(jìn)行編譯模型。在這個示例中,訓(xùn)練的是如下圖所示的聲譜圖,以完成圖片分類任務(wù)。
在該任務(wù)中,我們可以選擇 CNN 網(wǎng)絡(luò)模型,比如 ResNetv2 large 50。(右側(cè) Build-Snippets 中,有一些不同任務(wù)的模型可供選擇。)
接下來幾個步驟中,我們就在右側(cè)欄中設(shè)定模型的關(guān)鍵配置:
(1)在 Blocks 中添加 Input,F(xiàn)eature 選擇為 fname;
(2)添加 Batch normalization,勾選 Trainable;
(3)添加 Reshape,設(shè)置 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é)點(diǎn)設(shè)置為 80,激活 sigmoid;
(9)將 Target塊 的 Feature 改為 Lable,Loss 為 Binary crossentropy;
(10)跳轉(zhuǎn)到 Settings 選項(xiàng)卡,配置模型的步長、epoch、優(yōu)化器等;Batch 設(shè)為 28,適合 GPU 內(nèi)存、epoch 設(shè)為 30,模型足以收斂、Optimizer 選為 Adam,這是一個很常用的標(biāo)準(zhǔn)優(yōu)化器;
(11)上面的配置都完成后,點(diǎn)擊 RUN 就可以讓模型跑起來了。
4、Evaluating
模型訓(xùn)練后,我們還需要對模型進(jìn)行評估,在 Evaluating 界面,可以看到模型訓(xùn)練的實(shí)時數(shù)據(jù),我們關(guān)注的指標(biāo)是 Precision 和 Recall。模型訓(xùn)練完成后,可以直接下載,如果訓(xùn)練了多個模型,記得下載模型精度最高的。
5、提交模型
首先,進(jìn)入競賽頁面。點(diǎn)擊 New Kernel 連接到 Notebook,將下載的模型 H5 文件作為數(shù)據(jù)集添加。溫馨提示:要使用正確的 H5 文件路徑,添加下面這行代碼到 Kaggle notebook 中運(yùn)行,此處注意保存路徑,后面會用到。
!find../input-name'*.h5'
下面這段代碼可以直接復(fù)制-粘貼到 Kaggle notebook 中;將模型變量路徑更改為前面保存的路徑,最后點(diǎn)擊 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)了,訓(xùn)練模型的每一個步驟都在平臺上內(nèi)置好了,大家只需要托拉拽,勾勾選選的操作就可以訓(xùn)練你的模型了,另外還有一些免費(fèi)的 GPU 資源、內(nèi)存使用。對于代碼不會寫,框架不會寫的你們來說簡直不要太好用!營長的模型要準(zhǔn)備跑起來了,你們的呢?
-
AI
+關(guān)注
關(guān)注
87文章
29862瀏覽量
268152 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1201瀏覽量
24622 -
訓(xùn)練模型
+關(guān)注
關(guān)注
1文章
35瀏覽量
3796
原文標(biāo)題:不寫一行代碼,也能玩轉(zhuǎn)Kaggle競賽?
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論