目标:使用TensorFlow.js在服务器端构建用于训练和分类模型的Node.jsWeb服务器我正在尝试执行this tutorial以学习TensorFlow. js。
预期成果:服务器应该在本地运行在一个适当的端口上,如所示。
$ npm run start-server
...
> Running socket on port: 8001
Epoch 1 / 1
eta=0.0 ========================================================================================================>
2432ms 34741us/step - acc=0.429 loss=1.49
实际结果:服务器未运行
@MacBook-Pro baseball % npm run start-server
> tfjs-examples-baseball-node@0.2.0 start-server
> node server.js
zsh: illegal hardware instruction npm run start-server
我的硬件和软件配置:
- MacBook Pro(13英寸,M1,2020年)
- 芯片:苹果M1
- macOS大苏尔版本11.4
- @tensorflow /tfjs节点:第1.3.2节
- Node.js版本:版本14.17.5
- Xcode 12.5.1 /构建版本12 E507
在这个阶段,我已经记不起我读过多少个Github问题和Stackoverflow问题来解决这个问题,但没有成功。
1.尝试使用之前版本的@tensorflow/tfjs-node,如1.2.0和1.0.0。
1.已尝试最新版本的@tensorflow/tfjs-node,即3.8.0
1.检查我的Mac电脑上是否安装了Python 2.7.16和Python 3.9.6。
1.已删除node_modules和package-lock. json并运行npm安装
1.已将Node.js更新为最新版本。
1.已确保安装了Xcode。
这似乎是一个硬件兼容性问题,但我无法找到解决方案。请注意,我正在尝试使用TensorFlow的Javascript实现,而不是Python。
2条答案
按热度按时间62o28rlo1#
首先,
tfjs-node
包括二进制tensorflow
实现(与python相同),JS部分只是一个 Package 器(tfjs-node安装程序实际上构建了到二进制的NAPI绑定)第二,这是M1 CPU,不模拟x86指令集-并且根本不支持高级指令(例如AVX)。
由于您已经尝试过旧的
tfjs-node
v1.2(AVX之前的最后一个版本),唯一合适的解决方案是在M1硬件上从头构建tfjs-node
-这是一个相当痛苦的过程,但并非不可能如果你在github上搜索别人的端口,你可能会很幸运
更新日期:
苹果已经创建了一个TF分支,它使用苹果基于TF 2.4RC的ML库(以及可选的
Metal
库),但看起来维护得不好--最后一次更新是在2021年3月。
第一步是让TF在Python中工作
那么就需要重新构建
@tensorflow/tfjs-node
包以使用该库,而不是预先绑定的库pcww981p2#
好吧,如果你用的是Mac或者Linux,
brew uninstall node
然后尝试
npm start
或任何您希望的操作。我的问题就是这样解决的。希望它也能从你的Angular 解决这个问题。谢谢。