【问题标题】:How to run tensorflow.js with Electron?如何使用 Electron 运行 tensorflow.js?
【发布时间】:2020-04-03 23:42:20
【问题描述】:

我无法使用电子运行 tensorflow.js,请帮助。

我有什么:
1. Windows 10 版本 1903
2.python 2.7
3.节点12.13.1
4. npm 6.13.1
5. node-pre-gyp 0.14.0,全局安装

我做了什么:
1. 来自 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. 节点版本 13.3.0
2.npm rebuild @tensorflow/tfjs-node --build-from-source
3. 删除node_modules并再次运行脚本
4. 删除项目,重新开始

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

【问题讨论】:

    标签: node.js tensorflow electron tensorflow.js


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢!我还注意到 Microsoft Visual Studio 2019 在 .../2019/Community/MSBuild/15.0/Bin 中没有 MSBuild.exe,通过切换到 MVS 2017,使用节点 10.16.3 并运行您提供的命令,我的问题一直是已解决
    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2021-09-19
    • 2018-08-06
    • 2021-10-02
    相关资源
    最近更新 更多