跳轉到主要內容
工程的博客

如何使用MLflow繁殖結果和再教育保存Keras毫升模型

檢查實驗結果與TensorBoard MLFlow UI

2018年9月21日 工程的博客

分享這篇文章

第2部分MLflow係列博客,我們演示了如何使用MLflow跟蹤實驗結果為Keras網絡模型使用二進製分類。我們分類評審從IMDB數據集看作是積極的還是消極的。我們創建了一個基線模型和兩個實驗。對於每個模型,我們各自的訓練精度和跟蹤和驗證精度損失和損失。

在本係列的第三部分,我們將向您展示如何保存模型,再現結果,加載一個保存模型,預測看不見的審查所有容易TensorBoard MLFlow-and視圖的結果。

保存模型MLFlow

MLflow日誌api允許你保存模型在兩個方麵。首先,你可以保存在本地文件係統或模型在S3或Azure Blob存儲等雲存儲;其次,你可以登錄一個模型及其參數和指標。都保存Keras HDF5格式,如前所述MLflow Keras文檔

首先,如果你保存模型使用MLflow Keras模型API商店或文件係統,其他毫升開發者不使用MLflow可以使用的通用訪問你保存模型Keras模型api。例如,MLflow內運行時,您可以節省Keras模型如本例所示代碼片段:

進口mlflow.keras#你的Keras建立、訓練和測試模型模型=…#本地或遠程S3或者Azure Blob路徑model_dir_path =…#將模式保存到本地或遠程訪問路徑在S3或者Azure Blobmlflow.keras。model_dir_path save_model(模型)

一旦保存,毫升MLflow以外的開發人員可以使用Keras api加載模型和預測。例如,

進口keraskeras.models進口load_model
              model_dir_path =…new_data =…模型= load_model (model_dir_path)預測= model.predict (new_data)

第二,你可以保存模型作為您的運行實驗的一部分,連同其他指標和工件如下的代碼片段所示:

進口mlflow進口mlfow.keras#你的Keras建立、訓練和測試模型模型=…mlflow.start_run ():#日誌指標mlflow.log_metric (“binary_loss”binary_loss)mlflow.log_metric (“binary_acc”binary_acc)mlflow.log_metric (“validation_loss”validation_loss)mlflow.log_metric (“validation_acc”validation_acc)mlflow.log_metric (“average_loss”average_loss)mlflow.log_metric (“average_acc”average_acc)#日誌構件mlflow.log_artifacts (image_dir“圖片”)#日誌模式mlflow.keras.log_model(模型,“模型”)

使用第二種方法,您可以訪問其run_uuid或MLflow UI的一部分運行的位置保存構件:

圖1所示。MLflow UI顯示工件和Keras模型保存

在IMDB的案例中,您可以查看代碼保存的兩種模式train_nn.py、類KTrain ()。保存模型以這種方式提供繁殖的結果在MLflow平台或重新加載模型為進一步預測,我們會顯示在下麵的章節。Beplay体育安卓版本

繁殖的結果保存模型

作為機器開發生命周期的一部分,任何模型試驗的再現性毫升團隊成員勢在必行。你經常會想再培訓或複製運行來自多個各自過去的實驗檢查結果正常,可聽到或好奇心。

方法之一,在我們的示例中,是手動複製記錄hyper-parameters MLflow UI的一個特定的run_uuid並重新運行使用main_nn.pyreload_nn.py與原來的參數作為參數,在解釋道README.md

無論哪種方式,你可以複製你的舊運行和試驗:

python reproduce_run_nn.py——run_uuid = 5374 ba7655ad44e1bc50729862b25419python reproduce_run_nn.py——run_uuid = 5374 ba7655ad44e1bc50729862b25419 (——tracking_server = URI)

或使用mlflow運行命令:

mlflow運行keras / imdbclassifier - e - p run_uuid = 5374 ba7655ad44e1bc50729862b25419繁殖mlflow運行keras / imdbclassifier - e - p run_uuid = 5374 ba7655ad44e1bc50729862b25419繁殖[- p tracking_server = URI)

默認情況下,tracking_server默認為當地mlruns目錄中。這是一個動畫從可再生的運行示例輸出:

https://www.youtube.com/watch?v=tAg7WiraUm0
圖2所示。運行顯示從先前的run_uuid再現性

加載和保存模型做出預測

在前麵的部分中,執行測試運行時,該模型用於這些測試運行也救了通過mlflow.keras.log_model(模型,“模型”)。Keras模型保存在HDF5文件格式如上所述MLflow > > Keras模型。一旦你發現一個你喜歡的模型,您可以使用MLflow重用您的模型。

這個模型可以重新成為一個加載Python函數如上所提到的mlflow.keras使用mlflow.keras。load_model(path, run_id=None)

執行,你可以加載模型保存在MLflow MLflow UI,選擇運行,複製存儲的路徑模型截圖如上所述。

圖3所示。MLflow模型保存在工件

確定你的模型,你可以輸入自己的審查通過加載您的模型和執行它。例如,我們用一個審查不包括在IMDB分類數據集:

和一個偉大的表演,這是一個很棒的電影美麗的攝影,神奇的方向

運行一個預測在此評論,使用predict_nn.py對你的模型:

python predict_nn.py——load_model_path = ' /用戶/ dennylee / github / jsd-mlflow-examples / keras / imdbclassifier /模型/ mlruns / 0/55d11810dd3b445dbad501fa01c323d5 /工件”——my_review = '和一個偉大的表演,這是一個很棒的電影美麗的攝影,和驚人的方向

或者你可以直接使用運行它mlflowimdbclassifer回購計劃:

mlflow運行keras / imdbclassifier - e - p load_model_path =預測' /用戶/朱爾斯/ jsd-mlflow-examples keras / imdbclassifier / keras_models / 178 f1d25c4614b34a50fbf025ad6f18a- p my_review =”這是一個很棒的電影與一個偉大的表演,美麗的攝影,和驚人的方向

這個命令的輸出應該類似於下麵的輸出預測提供審查的積極情緒。

檢查結果與TensorBoard

除了審查結果MLflow UI,代碼示例保存TensorFlow事件,這樣您就可以可視化TensorFlow會話圖。例如,在執行該語句python main_nn.py,您將看到類似於下麵的輸出:

平均概率結果:(0.30386349968910215,0.88336000000000003]
              預測結果:[[0.35428655](0.99231517](0.86375767]…,(0.15689197](0.24901576](0.4418138]]本地/寫作TensorFlow事件var/文件夾/0q / c_zjyddd4hn5j9jkv0jsjvl00000gp / T / tmp7af2qzw4上傳TensorFlow事件作為工件。損失函數使用binary_crossentropy模型花了51.23427104949951火車測試

你可以提取TensorBoard日誌目錄與輸出線表示寫作TensorFlow事件在當地....和TensorBoard開始,您可以運行下麵的命令:

tensorboard——logdir =/var/文件夾/ 0 q / c_zjyddd4hn5j9jkv0jsjvl00000gp / T / tmp7af2qzw4

Github鏈接

在TensorBoard界麵:

  • 點擊標量審查相同的指標記錄在MLflow:二進製損失,二進製精度,驗證,和驗證精度。
  • 點擊可視化和交互圖和你的會話

封閉的思想

在這篇文章中,我們演示了如何使用MLflow保存模型和繁殖的結果保存模型作為機器開發生命周期的一部分。此外,通過pythonmlflow命令行,我們加載保存模型和預測的信心我們自己定製的評論看不見的模型。最後,我們展示了如何利用MLflow和TensorBoard並排通過提供代碼示例生成TensorFlow事件你可以可視化指標以及會話圖。

接下來是什麼?

你所看到的,在三個部分,MLflow的各個方麵:從實驗重現性和使用MLlfow UI和TensorBoard跑步的可視化。

你可以試試MLflowmlflow.org開始。或者嚐試一些教程和示例文檔,包括我們筆記本Keras_IMDB.py例子對於這個博客。

閱讀更多

以下是一些參考資料給你了解更多:

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map