【问题标题】:How to load a TensorFlow model from a GCS bucket如何从 GCS 存储桶加载 TensorFlow 模型
【发布时间】:2021-02-07 18:33:44
【问题描述】:

问题:目前,我在 GCS 中有一个公共存储桶,用于存储我的 TensorFlow 模型,我想将这些模型加载到我的 python 脚本中而无需任何身份验证。我该怎么做呢?

模型位于具有以下结构的文件夹中:

my-bucket
├── model_1
|   ├── assets
|   |   └── (this is an empty folder)
|   ├── saved_model.pb
|   ├── variables
|   |   ├── variables.data-00000-of-00001
|   |   └── variables.index

我知道我可以使用

tf.keras.models.load_model("gs://my_bucket/model_1")

但这需要身份验证,即使存储桶是公开的。

注意:我使用的是 Python Tensorflow 而不是 Tensorflow.js。

【问题讨论】:

    标签: python tensorflow google-cloud-storage bucket data-retrieval


    【解决方案1】:

    您确定存储桶中的对象也是公开的吗?一个简单的检查,看看是否是这种情况:

    gcloud auth revoke --all
    gsutil ls -r gs://my-bucket
    

    另一种可能性是您需要帐户密钥,即使存储桶是公开的。 keras 文档说明如下:

    GCloud 身份验证完全通过您的身份验证进行 关键,没有项目规范。使用示例工作流 “Putting it all”中提供了来自 notebook 的 TensorFlow Cloud 一起”本指南的部分。

    这意味着您需要一个帐户密钥,即使存储桶是公开的。这意味着您只需要使用以下命令登录到您自己的 gcp 帐户:

    gcloud auth application-default login
    

    最后一个需要更多工作的选项是,您可以使用 google-cloud-storage 客户端从存储桶本地下载模型,无需身份验证。然后从本地目录加载模型。这肯定会奏效,但却是最不可行的选择。

    【讨论】:

    • 谢谢!有没有办法通过python进行身份验证?
    • 查看 gcloud auth 命令,或在下载服务帐户密钥文件后设置 GOOGLE_APPLICATION_CREDENTIALS。
    猜你喜欢
    • 2020-02-14
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2020-09-17
    • 1970-01-01
    • 2021-11-02
    • 2021-02-21
    相关资源
    最近更新 更多