Tensorflowjs в ионном - PullRequest
       25

Tensorflowjs в ионном

0 голосов
/ 08 мая 2018

Я пытался использовать tenorflowjs в ионном. После преобразования существующей модели из Python, а затем импорта из ионной он работает, только когда я работаю на моем локальном сервере (http://localhost:8100/ionic-lab)

Однако, когда я создаю проект для Android Метод tf.loadModel не работает, он не может загрузить модель из локальной папки (например, assets / model)

Я уже проверил эту ссылку 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();
          });
      }
    }

Вот сообщение об ошибке Не удалось получить

А вот и структура проекта Структура проекта

1 Ответ

0 голосов
/ 22 марта 2019

TensorflowJs загружает модели через fetch (). fetch () не поддерживает загрузку local-файлов. https://fetch.spec.whatwg.org/

Мой обходной путь:

Используйте полифилл (https://github.com/github/fetch) и замените выборку.

window.fetch = fetchPolyfill;

Теперь можно загружать локальные файлы (file: ///), например:

const modelUrl = './model.json'

const model = await tf.loadGraphModel(modelUrl);
...