
1. Model Log 介紹
Model Log 是一款基于 Python3 的輕量級機器學習(Machine Learning)、深度學習(Deep Learning)模型訓練評估指標可視化工具,與 TensorFlow、Pytorch、PaddlePaddle結合使用,可以記錄模型訓練程序當中的超引數、Loss、Accuracy、Precision、F1值等,并以曲線圖的形式進行展現對比,輕松三步即可實作,
GitHub專案地址:https://github.com/NLP-LOVE/Model_Log
通過調節超引數的方式多次訓練模型,并使用 Model Log 工具進行記錄,可以很直觀的進行模型對比,堪稱調參神器,以下是使用工具后模型訓練時 Loss 的變化曲線圖,訪問線上體驗版:http://mantchs.com/model_log.html

通過上圖可以很清晰的看出兩個模型的訓練效果,而且在表格當中高亮顯示修改過的超引數,方便進行模型分析,
2. Model Log 特性
- 輕量級、無需任何配置、極簡API、開箱即用,
- 只需要把模型的超引數和評估指標資料通過API添加即可,輕松三步即可實作,
- 高亮顯示修改過的超引數,方便進行模型分析,
- 自動檢測和獲取正在訓練的模型資料,并進行可視化,無需人工參與,
- 使用 SQLite 輕量級本地資料庫存盤,可供多個用戶同時使用,保證每個用戶看到的資料是獨立的,
- 可視化組件采用 Echarts 框架,互動式曲線圖設計,可清晰看到每個 epoch 周期的指標資料和變化趨勢,
3. Model Log 演示地址
訪問線上體驗版:http://mantchs.com/model_log.html
4. Model Log 安裝
Python3 版本以上,通過 pip 進行安裝即可,
pip install model-log
注意:若安裝的程序中出現以下情況,說明 model-log 命令已經安裝到Python下的bin目錄中,如果直接輸入 model-log 可能會出現 command not found,可以直接到bin目錄下執行,

5. Model Log 使用
5.1 啟動 web 端
Model Log 安裝成功后,Linux、Mac用戶直接終端輸入以下命令,Windows用戶在cmd視窗輸入:
model-log
默認啟動 5432埠,可以在啟動命令上使用引數 -p=5000 指定埠號,若提示命令不存在,可以直接到Python/3.7/bin目錄下執行,
啟動后可在瀏覽器輸入網址進入:http://127.0.0.1:5432
也可訪問線上體驗版:http://mantchs.com/model_log.html
-
web首頁是專案串列,一個專案可以有多個模型,這些模型可以在曲線圖中直觀比較,
-
web 端會自動檢測是否有新模型開始訓練,如果有,直接會跳轉到相應的 loss 等評價指標頁,同時會自動獲取指標資料進行呈現,
-
可供多個用戶使用,添加昵稱即可,SQLite 輕量級本地資料庫存盤,保證每個用戶看到的資料是獨立的,
-
通過點擊曲線圖下方的圖例,可切換不同模型的評估曲線,

5.2 Model Log API使用
輕松三步即可使用
-
第一步:先創建 ModelLog 類,并添加必要的屬性
from model_log.modellog import ModelLog """ :param nick_name: str,昵稱,多人使用下可起到資料隔離, :param project_name: str,專案名稱, :param project_remark: str,專案備注,默認為空, 專案名稱如不存在會新建 """ model_log = ModelLog(nick_name='mantch', project_name='demo物體識別', project_remark='') """ :param model_name: str,模型名稱 """ model_log.add_model_name(model_name='BILSTM_CRF模型') """ :param remark: str,模型備注 """ model_log.add_model_remark(remark='模型備注') """ :param param_dict: dict,訓練引數字典 :param param_type: str,引數型別,例如:TF引數、Word2Vec引數等, """ model_log.add_param(param_dict={'lr':0.01}, param_type='tf_param') -
第二步:模型訓練的每次 epoch (周期)可以添加評估指標資料,評估指標可以進行以下選擇,
第一次呼叫該 API 時,會把以上設定的資料(模型名稱、備注等)持久化到 SQLite 資料庫,并且 web 端會自動獲取評估指標資料進行圖形化展示,
""" :param metric_name: str,評估指標名稱, 可選擇['train_loss', 'test_loss', 'test_acc', 'test_recall', 'test_precision', 'test_F1'] :param metric_value: float,評估指標數值, :param epoch: int,訓練周期 metric_name 引數只可以選擇以上六種 第一次呼叫該 API 時,會把以上設定的資料(模型名稱、備注等)持久化到 SQLite 資料庫,并且 web 端會自動獲取資料進行圖形化展示, 可以在每個 epoch 周期的最后使用該 API 添加訓練集和測驗集的評估指標,web 端會自動獲取該資料, """ model_log.add_metric(metric_name='train_loss', metric_value=https://www.cnblogs.com/mantch/p/4.5646, epoch=1) -
第三步:模型訓練完成后,可以添加最好的一次評估資料,
""" :param best_name: str,最佳評估指標名稱, :param best_value: float,最佳評估指標數值, :param best_epoch: int,訓練周期 添加當前模型訓練中最佳的評估資料,一般放到模型訓練的最后進行添加, """ model_log.add_best_result(best_name='best_loss', best_value=https://www.cnblogs.com/mantch/p/1.2122, best_epoch=30) """ 關閉 SQLite 資料庫連接 """ model_log.close()
5.3 Model Log 使用示例
MIST手寫數字識別:https://github.com/NLP-LOVE/Model_Log/blob/master/demo_TF_MIST.py

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10839.html
標籤:其他
