用樹莓派4b構建深度學習應用(七)Codeless開發篇

前言

經過前幾篇的努力,咱們把主流的幾個AI框架都安裝了一下,涉及了太多的代碼,略顯枯燥。這篇咱們試着在這基礎上,作一些有趣的AI應用,並趕一波時髦全程採用無代碼開發。

如今創建人工智能應用最大的挑戰在於幾個方面:算法

  • 數據採集與標註須要花大量的時間和人力;
  • 模型的訓練時間很長,算力成本也高;
  • 模型泛化能力很弱,換一個場景就須要更換模型;
  • 基礎算法艱澀難懂,科研和學校還是主力軍;
  • 不少領域尚未成熟的商業化解決方案。

隨着技術的不斷髮展,人工智能應該成爲某一系統的底層技術,在降本增效方面發揮更大的價值。AI 應該像水和電那樣,成爲任何人都隨開隨用的一種資源。這裏介紹一個網站,就有點這個意思了。後端

Teachable Machine

這個網站提供了一個簡單的人工智能訓練平臺,主要以監督學習爲主,提供了圖像分類,聲音分類和姿態識別三種類型的AI應用。能夠將訓練好的模型,以 Tensorflow,Tensorflow.js 或 Tensorflow Lite 三種形式來保存,這樣咱們能夠很方便的將其部署到手機端或是樹莓派上。瀏覽器

https://teachablemachine.with...框架

訓練模型分爲三個步驟:採集數據,訓練模型,導出模型。學習

1. 新建項目

咱們準備先作一個手勢識別的應用,新建一個圖像分類項目,再選擇 Image Project優化

2. 採集數據

能夠經過上傳圖像或是攝像頭的方式來採集圖像,填入分類的類別名稱,好比 one。網站

用攝像頭會比較方便,按住 Hold to Record 按鈕就會記錄,還能夠選擇幀率。錄製過程當中,能夠隨時刪除一些不適合的樣本,也能夠重複錄製,增長樣本多樣性。google

而後依次加第二個類別,第三個類別... 一直到 ten,共十個有效類別。這時候記得必定要加一個 nothing,做爲排除項。人工智能

Tip:spa

要注意每一個類別的圖像數量儘可能保持差很少的水平上,避免形成樣本不平衡。

3. 訓練模型

填入 Epochs,默認是50,只要沒有過擬合,能夠根據狀況改大些,提升準確率;

Batch Size,默認是16,過小的話不容易收斂,太大的話容易欠擬合。顯卡的顯存足夠的話,我比較迷信32;

Learning Rate,學習率是每次梯度降低更新的幅度,過大容易震盪,太小影響模型收斂速度,默認 0.001。

還能夠點擊 Under the hood,來查看整個訓練過程當中的曲線,有點 tensorboard 的味道了。
最後還能計算每一個類別的準確率和混淆矩陣,完美!

Tip:

訓練中記得不要切換標籤,保持tab一直處於開啓狀態,避免瀏覽器優化後臺影響訓練模型。

4. 驗證模型

能夠在訓練結束後,從新用攝像頭來驗證分類的結果,列表裏會輸出模型的預測機率,很是直觀好用。

你能夠及時對錯誤的類別,再補充一些樣本,提升分類的準確率。

5. 導出模型

點擊 Export Model 按鈕,會彈出一個對話框,咱們這裏選擇 Tensorflow Lite 模型,還能夠選擇導出的精度類型,Floating point ,Quantized 或 EdgeTPU。

點擊 Download my model 下載模型按鈕,過一段時間,網站就會把轉換好的模型打包成 converted_tflite.zip 壓縮文件。裏面包含兩個文件,model_unquant.tflite 是模型文件,labels.txt 是分類標籤文件。

這兩個文件是否是有點眼熟,對了,就是咱們上一篇 tensorflow lite 應用裏輸入的兩個參數。那讓咱們上次的程序直接跑一下看看效果。

部署到樹莓派

酷!!!

可貴的是,這回一行代碼沒寫,就跑出了一個手勢識別的AI應用。稍微擴展一下,好比訓練一個火影忍者裏的結印手勢,而後根據分類結果,後端再鏈接一個 IFFFT 應用,能夠頗有儀式感地打開你的智能門鎖。

也能夠很容易的作到揮一揮手就打開空調,打個響指就滅一盞臥室的檯燈,更多這種中二,又有趣的智能家庭應用,就留給大家的想象力了。


下一篇預告

咱們將在樹莓派上。
部署一下 intel 的神經計算棒,
進一步的提高推理速度,
敬請期待...

歡迎掃碼關注,更多分享

相關文章
相關標籤/搜索