Javascript TensorFlowJs&;使用tf.loadLayersModel的Google存储| CORS错误
我使用TensorFlow创建了一个基本模型,并使用以下工具将模型转换为TensorFlowJs:Javascript TensorFlowJs&;使用tf.loadLayersModel的Google存储| CORS错误,javascript,google-cloud-storage,tensorflow.js,Javascript,Google Cloud Storage,Tensorflow.js,我使用TensorFlow创建了一个基本模型,并使用以下工具将模型转换为TensorFlowJs:tfjs.converters.save_keras_model(model'./jfk_ewr')并将转换后的模型保存在google存储桶中 当从以下链接加载带有“示例1”(“从HTTP服务器加载模型”)的模型时:我得到一个CORS错误 model = await tf.loadLayersModel('https://console.cloud.google.com/storage/browse
tfjs.converters.save_keras_model(model'./jfk_ewr')
并将转换后的模型保存在google存储桶中
当从以下链接加载带有“示例1”(“从HTTP服务器加载模型”)的模型时:我得到一个CORS错误
model = await tf.loadLayersModel('https://console.cloud.google.com/storage/browser/jfk/ewr/model.json');
错误:
CORS策略已阻止从源“null”在“”处获取的访问:请求的资源上不存在“访问控制允许源”标头。如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以在禁用cors的情况下获取资源。浏览器强制执行同一来源策略,其中阻止对来自不同来源的资源的请求。在您的情况下,当尝试从未知来源获取存储在Google云存储中的模型时,将强制执行同源策略 因此,您可以正确配置CORS,也可以简单地将其禁用。在这种特定情况下,您可以配置Google云存储桶,以允许包含TensorFlow模型的存储桶与发出所述请求的HTTP服务器之间的资源请求 为了便于说明,假设我们想从服务器获取TensorFlow模型。在Google云存储文档中介绍了如何配置CORS[1]之后,我们首先创建一个.json文件,该文件包含所有必要的配置信息,这些信息与允许哪个来源执行CORS请求有关。在上面的示例中,它看起来像这样:
[
{
"origin": ["http://www.example.com"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]
在安装了云SDK的情况下,从命令行运行gsutil cors set cors.json gs://example bucket[2]将在您的bucket和服务器之间配置cors
- [1]
- [2]
- [3]
[
{
"origin": ["http://www.example.com"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]
在安装了云SDK的情况下,从命令行运行gsutil cors set cors.json gs://example bucket[2]将在您的bucket和服务器之间配置cors
- [1]
- [2]
- [3]