當前位置:
首頁 > 知識 > 不寫一行代碼就能玩轉 Kaggle 競賽?

不寫一行代碼就能玩轉 Kaggle 競賽?

不寫一行代碼就能玩轉 Kaggle 競賽?

不寫一行代碼就能玩轉 Kaggle 競賽?

整理 | Jane

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

今天,我們要給大家介紹的這個工具特別推薦給以往只能仰望別人的,缺乏競賽技能和經驗的朋友,你不需要寫一行代碼就可以參與 Kaggle 競賽,甚至連安裝環境都免了。是不是很神奇?下面我們一起 get 一下這個「真香」的工具!

不寫一行代碼就能玩轉 Kaggle 競賽?

參賽項目,Freesound Audio Tagging 2019

Kaggel 的競賽項目 Freesound Audio Tagging 2019,同時也是 DCASE 2019 挑戰賽的任務之一(Task 2),今天不對這個競賽做過多介紹,感興趣的朋友們可以通過我們下面給出的鏈接訪問。

不寫一行代碼就能玩轉 Kaggle 競賽?


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 等工具和框架也不熟悉的人,能參加這樣的競賽嗎?

不寫一行代碼就能玩轉 Kaggle 競賽?

不會寫代碼,也不會 TensorFlow、PyTorch,怎麼訓練模型?

Peltarion 平台 你值得擁有,訓練你的模型只需 5 步!

Peltarion 是怎樣的一個平台?它部署在雲端,在平台上你只需要簡單的「拖拉拽」就可以從0到1完成一個 AI 模型的創建到部署。平台給初始者提供了免費使用50 小時、共有 50 GB 的 GPU 存儲容量。

不寫一行代碼就能玩轉 Kaggle 競賽?

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

不寫一行代碼就能玩轉 Kaggle 競賽?

不寫一行代碼就能玩轉 Kaggle 競賽?

具體步驟示例

0、獲取數據集

模型預訓練中要使用的數據集是 FSDKaggle 2019,已經在 Peltarion 平台經過預處理,所以音頻文件經過轉化,與 index.csv 一起保存為 Numpy 文件格式,所以,大家直接下載 dataset.zip 即可。

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

不寫一行代碼就能玩轉 Kaggle 競賽?

1、Project:一鍵創建

直接 New 一鍵即可建立一個新 project,可以保存為「project v1」。

不寫一行代碼就能玩轉 Kaggle 競賽?

2、數據集:Upload 或者 Import

新建的 project v1 在左側就可以看到,點擊 Datasets → New dataset 就可以上傳數據集。然後選擇剛剛下載的數據集,等待上傳,最後命名保存為「Audio」。

不寫一行代碼就能玩轉 Kaggle 競賽?

默認 80% 的數據集作為訓練集,其餘 20% 用於測試集。在頂部的 New feature set 進行捆綁,除 fname 外所有的功能,保存為「Lable」。右上角保存 version 後,就可以進一步建模了。

不寫一行代碼就能玩轉 Kaggle 競賽?

3、Modeling:一鍵創建深度學習項目

New Experiment 後進入 Modeling 界面,你可以在右側看到「Build」和「Settings」兩個工具選項幫助進行編譯模型。在這個示例中,訓練的是如下圖所示的聲譜圖,以完成圖片分類任務。

不寫一行代碼就能玩轉 Kaggle 競賽?

在該任務中,我們可以選擇 CNN 網路模型,比如 ResNetv2 large 50。(右側 Build-Snippets 中,有一些不同任務的模型可供選擇。)

接下來幾個步驟中,我們就在右側欄中設定模型的關鍵配置:

不寫一行代碼就能玩轉 Kaggle 競賽?

(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 就可以讓模型跑起來了。

不寫一行代碼就能玩轉 Kaggle 競賽?

不寫一行代碼就能玩轉 Kaggle 競賽?

4、Evaluating

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

不寫一行代碼就能玩轉 Kaggle 競賽?

5、提交模型

不寫一行代碼就能玩轉 Kaggle 競賽?

首先,進入競賽頁面。點擊 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 tqdm

model = 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") ##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】

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

小米崔寶秋:小米 AIoT 深度擁抱開源
華為將發布鯤鵬 920 晶元數據;三星 S10 自燃;Mageia 7 正式發布 | 極客頭條

TAG:CSDN |