【发布时间】:2021-06-08 11:19:26
【问题描述】:
我正在尝试在远程计算机上设置 MLFlow 跟踪服务器作为 systemd 服务。 我有一个 sftp 服务器正在运行并创建了一个 SSH 密钥对。
除了工件日志记录之外,一切似乎都运行良好。 MLFlow 似乎没有权限列出保存在mlruns 目录中的工件。
我以这种方式创建实验并记录工件:
uri = 'http://192.XXX:8000'
mlflow.set_tracking_uri(uri)
mlflow.create_experiment('test', artifact_location='sftp://192.XXX:_path_to_mlruns_folder_')
experiment=mlflow.get_experiment_by_name('test')
with mlflow.start_run(experiment_id=experiment.experiment_id, run_name=run_name) as run:
mlflow.log_param(_parameter_name_, _parameter_value_)
mlflow.log_artifact(_an_artifact_, _artifact_folder_name_)
我可以看到 UI 中的指标和远程计算机上正确目标文件夹中的工件。但是,在 UI 中,我在尝试查看工件时收到此消息:
无法列出存储的工件 在 sftp://192.XXX:path_to_mlruns_folder/run_id/artifacts 对于当前运行。请联系您的跟踪服务器管理员 通知他们这个错误,这可能在跟踪时发生 服务器没有权限在当前运行的根目录下列出工件 工件目录。
我不明白为什么mlruns 文件夹具有drwxrwxrwx 权限,而所有子文件夹都具有drwxrwxr-x。我错过了什么?
更新
用新的眼光看它,它试图通过sftp://192.XXX:列出文件似乎很奇怪,它应该只是在文件夹_path_to_mlruns_folder_/_run_id_/artifacts中查找。但是,我仍然不知道如何规避。
【问题讨论】: