远程服务器上的工件存储和 MLFLow
Artifact storage and MLFLow on remote server
我正在尝试将本地网络中另一台机器上的 MLFlow 连接到 运行,我想寻求帮助,因为我现在不知道该怎么做。
我在 服务器 上有一个 mlflow 服务器 运行ning。 mlflow 服务器在 服务器 上我的用户下 运行ning 并且已经像这样启动:
mlflow server --host 0.0.0.0 --port 9999 --default-artifact-root sftp://<MYUSERNAME>@<SERVER>:<PATH/TO/DIRECTORY/WHICH/EXISTS>
我的程序应该将所有数据记录到 mlflow 服务器,如下所示:
from mlflow import log_metric, log_param, log_artifact, set_tracking_uri
if __name__ == "__main__":
remote_server_uri = '<SERVER>' # this value has been replaced
set_tracking_uri(remote_server_uri)
# Log a parameter (key-value pair)
log_param("param1", 5)
# Log a metric; metrics can be updated throughout the run
log_metric("foo", 1)
log_metric("foo", 2)
log_metric("foo", 3)
# Log an artifact (output file)
with open("output.txt", "w") as f:
f.write("Hello world!")
log_artifact("output.txt")
参数获取和指标被传输到服务器,但不是工件。为什么会这样?
SFTP 部分注意事项:
我可以通过 SFTP 登录并且安装了 pysftp 包
我不知道我的问题是否会得到答案,但我确实通过这种方式解决了。
我在服务器上创建了目录 /var/mlruns
。我通过 --backend-store-uri file:///var/mlruns
将此目录传递给 mlflow
然后我通过例如挂载这个目录sshfs
在同一路径下的本地计算机上。
我不喜欢这个解决方案,但它现在已经很好地解决了这个问题。
我猜你的问题是你还需要创建实验,所以使用 sftp 远程存储
mlflow.create_experiment("my_experiment", artifact_location=sftp_uri)
这帮我修好了。
我正在尝试将本地网络中另一台机器上的 MLFlow 连接到 运行,我想寻求帮助,因为我现在不知道该怎么做。
我在 服务器 上有一个 mlflow 服务器 运行ning。 mlflow 服务器在 服务器 上我的用户下 运行ning 并且已经像这样启动:
mlflow server --host 0.0.0.0 --port 9999 --default-artifact-root sftp://<MYUSERNAME>@<SERVER>:<PATH/TO/DIRECTORY/WHICH/EXISTS>
我的程序应该将所有数据记录到 mlflow 服务器,如下所示:
from mlflow import log_metric, log_param, log_artifact, set_tracking_uri
if __name__ == "__main__":
remote_server_uri = '<SERVER>' # this value has been replaced
set_tracking_uri(remote_server_uri)
# Log a parameter (key-value pair)
log_param("param1", 5)
# Log a metric; metrics can be updated throughout the run
log_metric("foo", 1)
log_metric("foo", 2)
log_metric("foo", 3)
# Log an artifact (output file)
with open("output.txt", "w") as f:
f.write("Hello world!")
log_artifact("output.txt")
参数获取和指标被传输到服务器,但不是工件。为什么会这样?
SFTP 部分注意事项: 我可以通过 SFTP 登录并且安装了 pysftp 包
我不知道我的问题是否会得到答案,但我确实通过这种方式解决了。
我在服务器上创建了目录 /var/mlruns
。我通过 --backend-store-uri file:///var/mlruns
然后我通过例如挂载这个目录sshfs
在同一路径下的本地计算机上。
我不喜欢这个解决方案,但它现在已经很好地解决了这个问题。
我猜你的问题是你还需要创建实验,所以使用 sftp 远程存储
mlflow.create_experiment("my_experiment", artifact_location=sftp_uri)
这帮我修好了。