Javascript 如何使用tensorflow.js在angular中正确上传预训练模型?

Javascript 如何使用tensorflow.js在angular中正确上传预训练模型?,javascript,angular,typescript,tensorflow.js,Javascript,Angular,Typescript,Tensorflow.js,我正试图将一个经过预训练的Keras模型上传到我现有的tensorflow.js模型中,然后通过以正确的格式传递一个张量来做一个简单的预测。 我正在从项目中的本地驱动器(在资产文件夹中)加载模型 我在html代码中实现了一个按钮,它应该启动代码并在控制台中打印出预测。但我得到了以下错误: 获取API无法加载file:///C:/Users/..path 转到文件夹../assets/tfjs_model/model.json。对于CORS请求,URL方案必须为“http”或“https” 错误

我正试图将一个经过预训练的Keras模型上传到我现有的tensorflow.js模型中,然后通过以正确的格式传递一个张量来做一个简单的预测。 我正在从项目中的本地驱动器(在资产文件夹中)加载模型

我在html代码中实现了一个按钮,它应该启动代码并在控制台中打印出预测。但我得到了以下错误:

  • 获取API无法加载file:///C:/Users/..path 转到文件夹../assets/tfjs_model/model.json。对于CORS请求,URL方案必须为“http”或“https”

  • 错误:未捕获(承诺中):TypeError:无法获取 TypeError:获取失败


假设您在浏览器中运行此应用程序,则无法访问本地文件资源。您需要将
model.json
文件放入Angular项目中的一个文件夹(例如“资产”),然后从那里通过
http(s)
协议加载模型

例如:

async loadModel() {
  this.model = await tf.loadModel('/assets/tfjs_model/model.json');
}
需要注意的几点:

与model.save()类似,LoadLayerModel函数采用类似URL的字符串参数,该参数以方案开头。这描述了我们试图从中加载模型的目标类型

方案(方案:http://或https://)后面跟着一个路径

类似url的字符串可以替换为与IOHandler接口匹配的对象

loadLayersModel()函数是异步的

tf.loadLayersModel的返回值为tf.Model

的可能重复项
async loadModel() {
  this.model = await tf.loadModel('/assets/tfjs_model/model.json');
}