问题描述
过去几天,我一直在尝试在 Google H2O 集群上运行保存的 H2O 模型。
我能够使用本指南部署并连接到集群 http://docs.h2o.ai/h2o/latest-stable/h2o-docs/cloud-integration/google-compute.html
h2o.cluster().show_status()
H2O_cluster_uptime:4 小时 38 分钟
H2O_cluster_timezone:等/UTC
H2O_data_parsing_timezone:UTC
H2O_cluster_version:3.32.1.2
H2O_cluster_version_age:12 天
H2O_cluster_name:root
H2O_cluster_total_nodes: 1
H2O_cluster_free_memory:6.220 Gb
H2O_cluster_total_cores:2
H2O_cluster_allowed_cores:2
H2O_cluster_status:锁定,健康
我将保存的模型上传到 Google Cloud Storage 并使用 Cloud Storage FUSE 融合到 VM 到此文件夹
/tmp/gcsModels/
现在,每当我尝试使用 .load_model 加载模型时:
models_path = "/tmp/gcsModels/serverless/v1/"
pca_model = h2o.load_model(os.path.join(models_path,"cust_PCA_DEMO_v1"))
我遇到了这个错误:
H2OResponseError: Server error water.exceptions.H2OIllegalArgumentException:
Error: Illegal argument: dir of function: importModel: water.api.FSIOException: FS IO Failure:
accessed path : file:/tmp/gcsModels/serverless/v1/cust_PCA_DEMO_v1 msg: File not found
Request: POST /99/Models.bin/
data: {'dir': '/tmp/gcsModels/serverless/v1/cust_PCA_DEMO_v1'}
经检查,models文件都在/tmp/gcsModels文件夹中
ls /tmp/gcsModels/serverless/v1/
cust_GBM_DEMO_LIKELIHOOD_v2
cust_GBM_DEMO_LIKELIHOOD_v2_cv5
cust_GBM_DEMO_LOGAMOUNT_v1_cv5
cust_PCA_DEMO_v1
我不知道我做错了什么。任何想法将不胜感激。
解决方法
您的 Python 客户端可能托管在与您的 H2O 服务器不同的位置。当您使用 h2o.connect(url="https://[external ip]:54321",auth=(username,password))
连接时,您正在指定一个外部 IP 地址。因此,您使用 ls
看到的内容将位于不同的位置。
您的错误消息显示在运行 Python 的文件系统上找不到该文件:
accessed path : file:/tmp/gcsModels/serverless/v1/cust_PCA_DEMO_v1 msg: File not found.
尝试使用 gs://
to specify that the file location will be on Google Storage。我不知道你的确切路径是什么,但我希望它是这样的:
h2o.load_model("gs://<BUCKETNAME>/gcsModels/serverless/v1/cust_PCA_DEMO_v1")