node.js - 如何使用 Electron 运行tensorflow.js?

标签 node.js tensorflow electron tensorflow.js

我无法使用 Electron 运行tensorflow.js,请帮忙。

我拥有的:
1.Windows 10版本1903
2.Python 2.7
3. Node 12.13.1
4. npm 6.13.1
5.node-pre-gyp 0.14.0,全局安装

我做了什么:
1. 从 Electron 文档克隆 Electron 快速启动 ( https://github.com/electron/electron-quick-start )。
2.运行 npm insntall 和 npm start 以确保一切正常。
3.安装@tensorflow/tfjs-node:

npm install @tensorflow/tfjs-node

> @tensorflow/tfjs-node@1.4.0 install C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-node 
> node scripts/install.js

CPU-windows-1.4.0.zip
* Downloading libtensorflow
[==============================] 2299069/bps 100% 0.0s
[==============================] 1212292/bps 100% 0.0s
* Building TensorFlow Node.js bindings
+ @tensorflow/tfjs-node@1.4.0
added 74 packages from 48 contributors and audited 256 packages in 30.48s

2 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities


4.在preload.js中添加一行

const tf = require('@tensorflow/tfjs-node');


5.运行npm start:

npm start

> electron-quick-start@1.0.0 start C:\Users\proxc\Desktop\electron-quick-start-master
> electron .


 node-pre-gyp info This Node instance does not support builds for N-API version 5
node-pre-gyp info This Node instance does not support builds for N-API version 5

在应用程序控制台中:

Platform browser has already been set. Overwriting the platform with [object Object].
Environment.setPlatform @ C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-core\dist\environment.js:38
init.ts:204 Unable to load preload script: C:\Users\proxc\Desktop\electron-quick-start-master\preload.js
(anonymous) @ init.ts:204
init.ts:205 Error: Cannot find module 'C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-node\lib\napi-v4\tfjs_binding.node'
Require stack:
- C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-node\dist\index.js
- C:\Users\proxc\Desktop\electron-quick-start-master\preload.js
    at Module._resolveFilename (internal/modules/cjs/loader.js:717)
    at Function../lib/common/reset-search-paths.ts.Module._resolveFilename (reset-search-paths.ts:40)
    at Module._load (internal/modules/cjs/loader.js:622)
    at Module._load (electron/js2c/asar.js:717)
    at Function.Module._load (electron/js2c/asar.js:717)
    at Module.require (internal/modules/cjs/loader.js:775)
    at require (internal/modules/cjs/helpers.js:68)
    at Object.<anonymous> (C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-node\dist\index.js:44)
    at Object.<anonymous> (C:\Users\proxc\Desktop\electron-quick-start-master\node_modules\@tensorflow\tfjs-node\dist\index.js:66)
    at Module._compile (internal/modules/cjs/loader.js:880)

我尝试过的:
1. Node 版本13.3.0
2. npm重建@tensorflow/tfjs-node --build-from-source
3.删除node_modules并再次运行脚本
4.删除项目并重来

可能很有趣:
1. node_modules\@tensorflow\tfjs-node\lib不包含napi-4,但包含napi-5

最佳答案

在 Windows 上构建 tfjs-node 似乎存在已知问题 here

解决方案是使用 Node 10.16.3 并运行命令:

npm rebuild @tensorflow/tfjs-node --build-from-source

关于node.js - 如何使用 Electron 运行tensorflow.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273124/

相关文章:

node.js - Mongoose 按查找字段分组

javascript - 如何使用绝对路径构建 index.html 引用 Assets ?

python - 如何将word2vec导入TensorFlow Seq2Seq模型?

javascript - 如何在不使用 -webkit-app-region 的情况下在 Electron 中移动无框窗口

node.js - Electron forge 启动被 Gulp 破坏

node.js - 公共(public) WiFi 热点中使用的 Node JS 互联网网关/强制门户

javascript - 如何将数据从一个函数导出到另一个函数

python - Tensorflow MaxPool 不接受 float64

tensorflow - 如何在 TensorFlow 中访问 protos 中的值?

javascript - 使用 HTML anchor 标记在 Electron 中打开外部链接