ionic-framework - 离子中的Tensorflowjs
问题描述
我尝试在离子中使用 tensorflowjs。从 python 转换现有模型然后从 ionic 导入后,它仅在我在本地服务器上运行时才有效(http://localhost:8100/ionic-lab)
但是,当我为 android tf.loadModel 方法不工作构建项目时,它无法从本地文件夹(即 assets/model )加载模型
我已经用 react-native 检查了这个链接Tensorflow.js ,但它没有帮助。我想,许多混合移动应用程序框架几乎都是同一条线。任何意见和建议将不胜感激。
import {Component} from '@angular/core';
import {IonicPage, AlertController} from 'ionic-angular';
import {HttpClient} from "@angular/common/http";
import * as tf from "@tensorflow/tfjs";
@IonicPage()
@Component({
selector: 'page-tfpretrainedversion',
templateUrl: 'tfpretrainedversion.html',
})
export class TfpretrainedversionPage {
kerasTraindedModel: tf.Model;
KERAS_MODEL_JSON = 'assets/model/model.json';
constructor(private httpClient: HttpClient,
private alertCtrl: AlertController) {
this.loadPretrainedModel();
}
loadPretrainedModel() {
tf.loadModel(this.KERAS_MODEL_JSON)
.then((result) => {
this.kerasTraindedModel = result;
})
.catch((error)=>{
let prompt = this.alertCtrl.create({
title: 'Error',
subTitle: error,
buttons: ['OK']
});
prompt.present();
});
}
}
这是一条错误消息 无法获取
这是一个项目结构 项目结构
解决方案
TensorflowJs 通过 fetch() 加载模型。fetch() 不支持加载本地文件。https://fetch.spec.whatwg.org/
我的解决方法:
使用 polyfill ( https://github.com/github/fetch ) 并替换 fetch。
window.fetch = fetchPolyfill;
现在,可以加载本地文件(file:///),例如:
const modelUrl = './model.json'
const model = await tf.loadGraphModel(modelUrl);
推荐阅读
- c# - 将多个应用程序(android 应用程序、网站和 windows 应用程序)连接到同一个数据库的最佳方法是什么?
- c++ - 使用 Minecraft 协议读取缓冲区
- node.js - npm install -g 同时更新 package.json?
- webview - Xamarin.iOS 无法从 WebView 导航和导航事件控制 iOS 活动指示器
- c++ - 以当前(LocalSystem)用户的默认权限运行进程
- r - 通过 R 从 Bloomberg 检索存储为文本 (YES/NO) 的数据
- date - 根据日期和年份识别当前周
- javascript - 第二条线图,图表js需要不同的标签
- animation - FFMPEG 由于色彩空间不匹配而丢帧
- azure - 如何通过 Ansible 将 Azure Application Insights 部署到生产环境