如何从 GCS 存储桶加载 TensorFlow 模型
How to load a TensorFlow model from a GCS bucket
问题: 目前,我在 GCS 中有一个 public 存储桶,用于存储我的 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")
但这需要身份验证,即使存储桶是 public。
注意:我使用的是 Python Tensorflow 而不是 Tensorflow.js。
您确定存储桶中的对象也是 public 吗?一个简单的检查,看看是否是这种情况:
gcloud auth revoke --all
gsutil ls -r gs://my-bucket
另一种可能是您需要帐户密钥,即使存储桶是 public。 keras 文档说明如下:
GCloud authentication happens entirely through your authentication
key, without project specification. An example workflow using
TensorFlow Cloud from a notebook is provided in the "Putting it all
together" section of this guide.
这意味着您需要一个帐户密钥,即使存储桶是 public。这意味着您只需要使用以下命令登录您自己的 gcp 帐户:
gcloud auth application-default login
最后一个选项(需要更多工作)是您可以使用 google-cloud-storage
客户端从存储桶中本地下载模型,无需身份验证。然后从本地目录加载模型。这绝对可行,但这是最不可行的选择。
问题: 目前,我在 GCS 中有一个 public 存储桶,用于存储我的 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")
但这需要身份验证,即使存储桶是 public。
注意:我使用的是 Python Tensorflow 而不是 Tensorflow.js。
您确定存储桶中的对象也是 public 吗?一个简单的检查,看看是否是这种情况:
gcloud auth revoke --all
gsutil ls -r gs://my-bucket
另一种可能是您需要帐户密钥,即使存储桶是 public。 keras 文档说明如下:
GCloud authentication happens entirely through your authentication key, without project specification. An example workflow using TensorFlow Cloud from a notebook is provided in the "Putting it all together" section of this guide.
这意味着您需要一个帐户密钥,即使存储桶是 public。这意味着您只需要使用以下命令登录您自己的 gcp 帐户:
gcloud auth application-default login
最后一个选项(需要更多工作)是您可以使用 google-cloud-storage
客户端从存储桶中本地下载模型,无需身份验证。然后从本地目录加载模型。这绝对可行,但这是最不可行的选择。