iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
AI & Data

然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)系列 第 27

[Day 27] Final Project (3/5) — 讓 App 在本機端運行

Prerequisites

為了讓接下來的步驟可以順利進行,我們首先要完成以下的前置作業,但因為每個人的作業系統不同 (當然最好是使用 Linux) 所以這裡不額外做說明,請自行進入參考連結並跟著其中的步驟安裝即可:

⚠️ 再次提醒:使用 Google Cloud 的服務是要收費的,所以記得結束後把這幾天的工作刪掉!

讓 App 在本機端運行

記得昨天我們已經把具體的工作流程列出來了:
True workflow
上圖可以簡化成以下三個步驟:

  1. 讓 App 在本機端運行
  2. 部署模型到 AI Platform
  3. 部署 app 到 App Engine

所以今天我們首先要讓 App 在本機端可以運行。
而正如昨天所說的,這幾天的文章會比較偏向料理節目的風格,也就是大部分程式都事先準備好了,所以第一步驟就是到 Github 把 repo 克隆下來開始。
那就讓我們開始吧:

  1. 克隆 Repo
    git clone https://github.com/eatPizza311/iThome-2021ironman.git
    
  2. 進入 build_dataflywheel/ironbird/ 資料夾
    cd iThome-2021ironman/build_dataflywheel/ironbird/
    
  3. 建立虛擬環境與處理函式庫相依 (Streamlit, TensorFlow, etc)
    如果再前置作業時沒有安裝 Anaconda 的話,請使用以下指令建立虛擬環境與安裝函式庫:
    pip install virtualenv
    virtualenv <ENV-NAME>
    source <ENV-NAME>/bin/activate
    pip install -r requirement.txt
    
    如果有 Anaconda 則可以使用以下指令:
    conda env create -f requirement.yml
    conda activate ironbird
    
  4. 啟動 Streamlit 與執行 app.py
    streamlit run app.py
    
    執行上面的程式碼後應該可以看到以下畫面:
    my app
    這個就是我們要做的 App — Ironbird!!
  5. 可以試試看上傳一張圖片 (例如任何一張有鳥的照片),這裡以下圖為例:
    bird
    *翻攝自推特@aerial2009
    6. 圖片上傳成功應該會看到寫著 開始預測! 的按鈕出現,按按看吧!
    7. 按下去應該會發現 App 爆炸了,因為它試圖跟 Google Cloud Platform (GCP) 索要模型,但可能發生以下其中一種錯誤:
    • 找不到模型 (錯誤的 API 呼叫或模型不存在)
    • 因為認證問題而無法使用現有模型,見下圖:
      App crash

其實不管哪種錯誤都是一件好事!
因為至少我們的 App 試圖與 GCP 取得聯繫 (使用 ironbird/app.pyironbird/utils.py 內的函式)。
總之,App 已經確定可以在本機端運作了,明天就讓我們把模型部署到 AI Platform 吧。
/images/emoticon/emoticon48.gif


上一篇
[Day 26] Final Project (2/5) — 準備開始
下一篇
[Day 28] Final Project (4/5) — 部署模型到 Google AI Platform
系列文
然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)30

尚未有邦友留言

立即登入留言