Angular集成TensorFlow.js报Cannot find name 'Long'错误如何解决?
报错解决方案
你遇到的Cannot find name 'Long'编译错误是TensorFlow.js的类型声明依赖long库的类型定义,默认安装tfjs时不会自动安装该依赖,按以下步骤修复即可:
- 安装long库及对应的类型定义
npm install long @types/long --save
- 修改项目根目录下的
tsconfig.app.json,在compilerOptions配置项的types数组中新增long,参考配置如下:
{ "compilerOptions": { // 其余原有配置保持不变 "types": [ // 其余原有types项保持不变,新增如下配置 "long" ] } }
- 清除Angular本地缓存后重新启动项目
ng cache clean ng serve
Angular 集成 TensorFlow.js 完整操作指引
- 第一步:安装基础依赖
npm install @tensorflow/tfjs --save
如果需要使用官方预训练模型,可按需安装对应模型包,例如文本相关模型@tensorflow-models/universal-sentence-encoder等。
- 第二步:完成类型配置
执行上述报错解决方案中的步骤2、步骤3,完成类型声明适配,避免编译错误。 - 第三步:组件开发注意事项
- 所有模型加载、训练、预测逻辑不要放在构造函数中执行,统一放在
ngOnInit生命周期钩子中触发 - 所有创建的
tf.Tensor实例使用完成后及时调用.dispose()方法释放显存,避免内存溢出 - 训练、预测等耗时异步操作需添加loading状态提示,避免阻塞UI交互
- 所有模型加载、训练、预测逻辑不要放在构造函数中执行,统一放在
补充说明:你现有代码中定义的
xs张量包含9个数值,ys张量包含10个数值,二者长度不匹配,后续调用fit方法训练时会抛出维度不匹配错误,需要先修正为长度一致的数据集再运行训练逻辑。
内容的提问来源于stack exchange,提问作者Ibrahim Gidi
相关产品推荐
相关产品推荐

