我使用了MLflow,并使用下面的函数(来自pydataberlin)记录了参数。
def train(alpha=0.5, l1_ratio=0.5):
# train a model with given parameters
warnings.filterwarnings("ignore")
np.random.seed(40)
# Read the wine-quality csv file (make sure you're running this from the root of MLflow!)
data_path = "data/wine-quality.csv"
train_x, train_y, test_x, test_y = load_data(data_path)
# Useful for multiple runs (only doing one run in this sample notebook)
with mlflow.start_run():
# Execute ElasticNet
lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
lr.fit(train_x, train_y)
# Evaluate Metrics
predicted_qualities = lr.predict(test_x)
(rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)
# Print out metrics
print("Elasticnet model (alpha=%f, l1_ratio=%f):" % (alpha, l1_ratio))
print(" RMSE: %s" % rmse)
print(" MAE: %s" % mae)
print(" R2: %s" % r2)
# Log parameter, metrics, and model to MLflow
mlflow.log_param(key="alpha", value=alpha)
mlflow.log_param(key="l1_ratio", value=l1_ratio)
mlflow.log_metric(key="rmse", value=rmse)
mlflow.log_metrics({"mae": mae, "r2": r2})
mlflow.log_artifact(data_path)
print("Save to: {}".format(mlflow.get_artifact_uri()))
mlflow.sklearn.log_model(lr, "model")
一旦我运行train()
及其参数,在UI中我看不到Artifacts,但我可以看到模型及其参数和Metric。
在工件选项卡中,它被写为No Artifacts Recorded Use the log artifact APIs to store file outputs from MLflow runs.
,但在模型文件夹中的finder中,所有工件都与模型Pickle一起存在。
帮助
6条答案
按热度按时间7bsow1i61#
在我的例子中,我通过在实验的
mlruns
目录中运行mlflow ui
解决了这个问题。查看Github here上的完整讨论
希望有帮助!
whlutmcx2#
这段代码没有在本地运行吗?你是否在移动mlruns文件夹?我建议检查 meta文件中的工件URI。如果路径不正确,可能会出现这样的问题。
beq87vna3#
我也遇到了同样的问题(对于
mlflow.pytorch
)。对我来说,通过替换log_model()
和log_atrifacts()
可以修复它。记录藏物的程序是:
另外,对于终端中的
ui
,cd到mlruns
所在的目录。例如,如果mlruns
的位置是...\your-project\mlruns
:转到安装
mlflow
的环境。然后,运行
mlflow ui
lymgl2op4#
我也有类似的问题。在我更改了脚本文件夹后,我的UI没有显示新的运行。
对我有效的解决方案是在启动新UI之前停止所有MLflow UI,以防您正在更改文件夹。
thtygnil5#
我在本地托管的Jupyter Notebook中运行相同的Python代码,当我在包含Jupyter Notebook的目录中运行
mlflow ui
时,这个问题就解决了。xiozqbni6#
我在运行mlflow服务器并在S3中存储工件时遇到了这个问题。能够通过安装
boto3
修复