將Pickle文件記錄為Mlflow運行的一部分

更新時間:2024-04-02 12:01:54

問題闡述

我正在運行一個MLflow實驗,作為其中的一部分,我想將幾個項目記錄為Python Pickle。

示例:嘗試不同的分類編碼器,因此希望將編碼器對象記錄為Pickle文件。

有沒有辦法做到這一點?

精準答案

有兩個函數:

  1. log_artifact-將本地文件或目錄記錄為項目
  2. log_artifacts-記錄本地目錄的內容

這樣簡單:

with mlflow.start_run():
    mlflow.log_artifact("encoder.pickle")

您將需要使用custom MLflow model來使用該已腌制的文件,如下所示:

import mlflow.pyfunc

class my_model(mlflow.pyfunc.PythonModel):
    def __init__(self, encoders):
        self.encoders = encoders

    def predict(self, context, model_input):
        _X = ...# do encoding using self.encoders.
        return str(self.ctx.predict([_X])[0])