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

How to properly upload a pretrained model in angular with tensorflow.js?

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

export class MotionAnalysisComponent implements OnInit {

  model: tf.LayersModel;

  ngOnInit() {
        this.loadModel()
    };

  async loadModel() {
      this.model = await 
  tf.loadLayersModel('C:/Users/..path to folder../assets/tfjs_model/model.json');
      console.log('Prediction from loaded model:');
      this.model.predict(tf.ones([60,60,60]));
    }

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

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

例如像这样:

async loadModel() {
  this.model = await tf.loadModel('/assets/tfjs_model/model.json');
}

注意几点:

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

方案(方案:http:// 或 https://)后跟路径。

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

tf.loadLayersModel() 函数是异步的。

tf.loadLayersModel的return值为tf.Model