在 Smart eVision 中,執行 Python 取得運算值可以幫助您通過使用 Smart eVision Button 控制項元件設計 Action Flow 並觸發執行 Python 程式來取得運算值。新增頁面時也可以直接取得 Python Data 資料來源。
此章節包含主題:
有了上面 Python 原理認識,接下來將開始您介紹 Python 與 Smart eVision 相關應用,我們已經做好的範例, 如果您想要在Smart eVision 平台上觀看、測試。
可以點選下載連結,回存範例<倫敦出租自行車-AI模型>
http://www.lcnet.com.tw/download/temp/Python.zip
回存方式請參考操作手冊中系統管理的「備份回存工具」:點我查看更詳細說明
Button Action Flow 是 Smart eVision 中的一個功能,可以讓您使用 Python 程式設計按鈕的行為。當您在 Smart eVision 中設計按鈕時,可以使用 Button Action Flow 功能來指定按鈕按下後應該執行哪些 Python 程式。這些 Python 程式可以用來執行各種不同的操作,例如收集資料、計算運算值、更新資料庫等。
使用 Button Action Flow 功能的好處是,可以讓您專注於 Python 程式的設計,而無需擔心界面的設計細節。只需將 Python 程式與 Button Action Flow 功能相結合,就可以透過簡單的按鈕操作來執行複雜的任務。
回存之後進入到設計端,Python 的 AI 流程是寫在 Button 的 Action Flow 中。請切換到「預測」頁籤、點選畫面中預測的button, 接著點選右上角事件的頁籤,點擊下面的Flow,進入到 Action 的 Flow 中

中間就會顯示 Action Flow 的流程,其中會有一個「執行 Python 取得運算值」,點選中間的編輯步驟,就可以進入到 Python 編輯。

標題可以為這個 Action 命名,在 Python Script 中,您可以使用多種方法來取得參數、載入模型、預測和定義變數(這邊定義成result),變數就可以下拉選擇在 Python 所定義的變數,點選右下角的確定 ,就可以關閉 Python Script 狀態。

上面 Python Script 完整語法如下。
|
from pandas import DataFrame import pandas as pd import autokeras as ak from keras.models import load_model import os #取得參數 data = [] data.append([{{$param.t1$}},{{$param.t1$}},{{$param.hum$}}, {{$param.wind_speed$}}, {{$param.weather_code$}}, {{$param.is_holiday$}}, 0, {{$param.season$}}, {{$param.hour$}}]) x_test = pd.DataFrame(data,columns=['t1','t2', "hum", "wind_speed", "weather_code", "is_holiday", "is_weekend", "season", "time"]) #載入模型 loaded_model = load_model('/Python/work/london_bike/auto_model/best_model', custom_objects=ak.CUSTOM_OBJECTS) #預測 # ------------------------------------------------------------------------------ predicted = loaded_model.predict(x_test).flatten() * 1000 result = round(predicted[0]) |
可以在 Python 預測底下往下新增,參數與控制項中的「Assign Contrlos」拉到 Flow 中。

點選「Assign Contrlos」 中的編輯。

主要是讓頁面中的 Label 控制項取得 Python 的值,點選右上角的「增加欄位」。

找到 Label1 控制項,我們是需要讓Label顯示Python的值,所以就選擇「labelValue」的屬性,並點到右鍵,新增到已選擇的控制項屬性。

有順利新增就會如下圖顯示。

點選下圖中間的資料規格頁籤,找到變數的節點,可以看到上面新增的Python Flow 名稱,以及定義的變數名稱,透過拖拉的方式拖拉到左邊值的欄位,點選確定,Python 取回值就會顯示在Label1控制項上面。

回到設計端,點選右上角的存檔、預覽就可以儲存規格,執行頁面,切換到預設頁籤,下面的預測按鈕點選時,就會去執行Python Script 最後將得到的變數,顯示在旁邊的Label。

AI模型訓練附註: |
|---|
|
■程式解析 使用 Libraries numpy - 矩陣運算, 數學函式庫 pandas - 用來直接讀 CSV 檔 tensorflow- 由 Google 開發的機器學習函式庫 autokeras - 自動化機器學習, 不用學習一堆的演算法 sklearn.model_selection - 將資料分為訓練用及測試用 ■程式大綱 載入及整理資料 訓練模組 衡量模組 輸出模組 |
AI模型預測附註: |
|---|
|
■程式解析 使用 Libraries pandas - 用來將參數組成 DataFrame autokeras - 自動化機器學習, 不用學習一堆的演算法 keras.models - 用來載入已訓練好的模組 ■程式大綱 由 SV 條件值取得參數 載入模型 預測 ■原理 透過 Python Action 將條件值 (設計:設計時套用值, 執行:動態初值)傳入 Python, 由訓練好的模型預測, 再將結果傳回顯示 Python Action 可以指定傳回值的變數名稱 |