【问题标题】:zsh: illegal hardware instruction npm run start-serverzsh: 非法硬件指令 npm run start-server
【发布时间】:2021-10-26 13:22:32
【问题描述】:

目标:使用 TensorFlow.js 在服务器端构建一个 Node.js 网络服务器,用于训练和分类模型 我正在尝试做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 Big Sur 版本 11.4
  • @tensorflow/tfjs-node: ^1.3.2
  • Node.js 版本:v14.17.5
  • Xcode 12.5.1 / 构建版本 12E507

我尝试了什么? 在这个阶段,我不记得我读过多少个 Github issues 和 Stackoverflow question 来解决这个问题而没有成功。

  1. 尝试使用 @tensorflow/tfjs-node 的早期版本,例如 1.2.0 和 1.0.0。
  2. 尝试了@tensorflow/tfjs-node 的最新版本,即 3.8.0
  3. 检查了我的 Mac 上是否安装了 Python 2.7.16 和 3.9.6。他们是。
  4. 删除 node_modules 和 package-lock.json 并运行 npm install
  5. 已将 Node.js 更新为最新版本。
  6. 确保已安装 Xcode。

这似乎是硬件兼容性问题,但我无法找出解决方案。请注意,我正在尝试使用 TensorFlow 而不是 Python 的 Javascript 实现。

【问题讨论】:

  • 你试过Rosetta2启用终端吗?
  • 这个问题你解决了吗?我遇到了同样的问题
  • 还没有。目前,我正在处理其他紧急问题。

标签: node.js tensorflow tensorflow.js apple-m1


【解决方案1】:

首先,tfjs-node 包含二进制 tensorflow 实现(与 python 相同),JS 部分只是一个包装器(tfjs-node 安装程序实际上将 NAPI 绑定构建到二进制文件)

其次,这是不模拟 x86 指令集的 M1 CPU - 根本不支持高级指令(例如 AVX)。

由于您已经尝试过旧的 tfjs-node v1.2(AVX 之前的最后一个),唯一正确的解决方案是在 M1 硬件上从头开始构建 tfjs-node - 相当痛苦的过程,但并非不可能

如果你在 github 上搜索别人的端口,你可能会很幸运

更新:

Apple 创建了一个 TF 分支,它使用基于 TF 2.4RC 的 Apple ML 库(以及可选的 Metal 库),
但它似乎没有得到很好的维护 - 最后一次更新是在 2021 年 3 月。

所以第一步是让 TF 在 Python 中工作
那么问题是重建@tensorflow/tfjs-node 包以使用该库而不是预先捆绑的一个

【讨论】:

  • 嘿,我正在使用"@tensorflow/tfjs-node": "^3.9.0", 这个,只是想完全做tensorflow.org/js/guide/models_and_layers 这个事情。我面临同样的问题。我更新了 npm、node 和所有内容。我该如何解决这个问题?
  • 我已经更新了答案 - 仍然远非理想,但值得一试
  • 我决定学习 python 哈哈
猜你喜欢
  • 2022-12-06
  • 2021-07-11
  • 2023-02-03
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 2018-12-23
  • 2017-10-05
相关资源
最近更新 更多