Estoy tratando de diseñar un software en angular que adivine la palabra escrita correcta usando tensorflow.js con angular
aplicación.componente.ts
import { Component, ViewChild, OnInit } from '@angular/core'; import * as tf from '@tensorflow/tfjs'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { linearModel?: tf.Sequential; prediction: any; ngOnInit(){ // this.trainNewModel(); } // async trainNewModel(){ // this.linearModel = tf.sequential(); // this.linearModel.add(tf.layers.dense({ // units: 1, // inputShape:[1] // })); // this.linearModel.compile({ // loss: 'meanSquareError', // optimizer: 'sgd' // }); // const xs = tf.tensor1d([3.2,4.4,5.5,6.71,6.98,7.168,9.779,7.59,2.16]); // const ys = tf.tensor1d([1.6,2.7,2.9,3.19,1.684,2.53,3.366,2.596,2.53,1.22]); // await this.linearModel.fit(xs,ys); // console.log('model trained!'); // } // linearPrediction(val:any){ // const output = this.linearModel.predict(tf.tensor2d([val], [1, 1])) as any; // this.prediction = Array.from(output.dataSync())[0] // } }aplicación.componente.html
<!-- <h4> preicted value: {{ prediction }}</h4> <input type = "number" (change)= "linearPrediction()"> -->el error se parece a esto
ERROR node_modules/@tensorflow/tfjs-core/dist/hash_util.d.ts:2:49 - error TS2304: Cannot find name 'Long'. 2 export declare function hexToLong(hex: string): Long; ~~~No pude encontrar la documentación correcta que indique claramente el uso de tensorflow.js en angular; ¿alguien podría mostrarme?
No tiene nada que ver con AngularJS, se debe a que las comprobaciones de tipo estrictas de TypeScript se habilitan globalmente en su proyecto para todas las dependencias, no solo su código
Y este es un problema conocido: TFJS está escrito con el antiguo TS 3.x y los typedefs no están completamente a la par.
La mejor sugerencia es deshabilitar las comprobaciones de tipo en elementos dentro de TFJS configurando skipLibCheck=true en su tsconfig.json
Pero si realmente desea usar controles de tipo en TS, buena suerte, y deberá incluir long@4.0.0 como una dependencia en su aplicación (la versión más reciente long@5.x NO es compatible)