gpt4 book ai didi

javascript - TensorFlowJs 和 Google 存储 | tf.loadLayersModel 出现 CORS 错误

转载 作者:行者123 更新时间:2023-12-02 23:17:16 25 4
gpt4 key购买 nike

我使用 TensorFlow 创建了一个基本模型,并使用以下命令将该模型转换为 TensorFlowJ:tfjs.converters.save_keras_model(model, './jfk_ewr') 并将转换后的模型保存在 Google 存储桶中。

从以下链接使用“示例 1”(“从 HTTP 服务器加载模型”)加载模型时:https://js.tensorflow.org/api/latest/#loadLayersModel我收到 CORS 错误。

model = await tf.loadLayersModel('https://console.cloud.google.com/storage/browser/jfk/ewr/model.json');

错误:访问 ' https://console.cloud.google.com/storage/browser/jfk/ewr/model.json 获取' 来自来源 'null' 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' header 。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。

最佳答案

浏览器强制执行同源策略,阻止来自不同来源的资源请求。在您的情况下,当尝试从未知来源获取存储在 Google Cloud Storage 中的模型时,会强制执行同源策略。

因此,您可以正确配置 CORS 或将其禁用。在这种特定情况下,您可以配置 Google Cloud Storage 存储桶,以允许包含 TensorFlow 模型的存储桶与发出所述请求的 HTTP 服务器之间进行资源请求。

出于说明目的,假设我们想要从 http://www.example.com 获取 TensorFlow 模型服务器。按照有关配置 CORS 的 Google Cloud Storage 文档 [1],我们首先创建一个 .json 文件,其中包含有关允许哪些源执行 CORS 请求的所有必要的配置信息。在上面的示例中,它看起来像这样:


[
{
"origin": ["http://www.example.com"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]

在安装了 Cloud SDK 的情况下从命令行运行 gsutil cors set cors.json gs://example-bucket [2] 将在您的存储桶和服务器之间配置 CORS。

关于javascript - TensorFlowJs 和 Google 存储 | tf.loadLayersModel 出现 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com