我在GCS VM实例上运行着一个MlFlow服务器。我创建了一个桶来记录工件。
这是我正在运行的启动服务器的命令和指定桶路径的方式-
此外,关于打印工件URI,这是我得到的结果:
mlflow server --default-artifact-root gs://gcs_bucket/artifacts --host x.x.x.x
但是面对这个错误:
TypeError: stat: path should be string, bytes, os.PathLike or integer, not ElasticNet
注意- Mlflow服务器在指定的主机上运行良好。问题在于当我指定存储桶路径时的方法。 使用以下命令授予了存储API的权限:
gcloud auth application-default login
gcloud auth login
此外,关于打印工件URI,这是我得到的结果:
mlflow.get_artifact_uri()
输出:
gs://gcs_bucket/artifacts/0/122481bf990xxxxxxxxxxxxxxxxxxxxx/artifacts
所以在上面的路径中,从哪里来的这个 0/122481bf990xxxxxxxxxxxxxxxxxxxxx/artifacts
,为什么它没有在 gs://gcs_bucket/artifacts
自动创建?
经过更多调试,为什么它无法从 VM 获取本地路径:
![enter image description here](https://istack.dev59.com/ubDU0.webp)
我在 VM 上收到了这个错误:
ARNING:root:Malformed experiment 'mlruns'. Detailed error Yaml file './mlruns/mlruns/meta.yaml' does not exist.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/mlflow/store/tracking/file_store.py", line 197, in list_experiments
experiment = self._get_experiment(exp_id, view_type)
File "/usr/local/lib/python3.6/dist-packages/mlflow/store/tracking/file_store.py", line 256, in _get_experiment
meta = read_yaml(experiment_dir, FileStore.META_DATA_FILE_NAME)
File "/usr/local/lib/python3.6/dist-packages/mlflow/utils/file_utils.py", line 160, in read_yaml
raise MissingConfigException("Yaml file '%s' does not exist." % file_path)
mlflow.exceptions.MissingConfigException: Yaml file './mlruns/mlruns/meta.yaml' does not exist.
我能得到解决方案吗?还有我缺少了什么?