Ошибка при импорте Tensorflow.js в Android Vue Cordova `Ошибка типа: Невозможно переопределить свойство: имя` - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать компонент Vue, который использует TensorFlow.js для выполнения некоторого предварительно обученного прогнозирования модели. Этот компонент требуется для запуска в одностраничном и Android-приложении Cordova, повторно используя один и тот же исходный код в квазарепроект

компонент работает нормально в режиме SPA, вставлен в Cordova, страница не загружается, консоль разработчика инструментов показывает ошибку:

TypeError: Cannot redefine property: name message: "Cannot redefine property: name"stack: "TypeError: Cannot redefine property: name↵    at Function.defineProperty (native)↵    at Cn (webpack-internal:///../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js:290:71123)↵    at Object.eval (webpack-internal:///../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js:290:75521)↵    at Object.eval (webpack-internal:///../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js:293:30)↵    at Object.push.../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js (http://192.168.43.121:8081/1.js:23:1)↵    at __webpack_require__ (http://192.168.43.121:8081/app.js:770:30)↵    at fn (http://192.168.43.121:8081/app.js:130:20)↵    at Object.eval (webpack-internal:///../node_modules/@tensorflow/tfjs/dist/tf.esm.js:3:79)↵    at Object.push.../node_modules/@tensorflow/tfjs/dist/tf.esm.js (http://192.168.43.121:8081/1.js:59:1)↵    at __webpack_require__ (http://192.168.43.121:8081/app.js:770:30)"get stack: function () { [native code] }arguments: null caller: null length: 0name: ""prototype: StackTraceGetter__proto__: function Empty() {}<function scope>set stack: function () { [native code] }__proto__: Errorwebpack-internal:///../node_modules/vue-router/dist/vue-router.esm.js:2036 abort

компонент:

<template>
  <div class="tensor-flow">
  </div>
</template>

<script>
 import * as tf from '@tensorflow/tfjs'

export default {
  name: 'tensor-flow',
  props: {
    modelUrl: {
      type: String,
      default: 'model.json'
    }
  },
  data () {
    return {
      model: {}
    }
  },
  methods: {
    async loadModel () {
      this.model = await tf.loadLayersModel(this.modelUrl)
    },
    predict (input) {
      return this.model.predict(input)
    }
  }
}
</script>

Я установил TensorFlow.js от yarn:

yarn add @tensorflow/tfjs

Я также попытался добавить скрипт в файл шаблона index.html

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.0/dist/tf.min.js"></script>

, но возникает та же ошибка! в чем проблема?

...