无法在 nodejs 中导入 @tensorflow/tfjs-node [英] Cannot import @tensorflow/tfjs-node in nodejs

查看:97
本文介绍了无法在 nodejs 中导入 @tensorflow/tfjs-node的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无法将@tensorflow/tfjs-node 导入我的程序.我试图按如下方式导入它:

Cannot import @tensorflow/tfjs-node into my program. I was trying to import it as follows:

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

并收到如下错误:

internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/home/nama/working/Canvas-WEB/node_modules/@tensorflow/tfjs-node/lib/napi-v4/tfjs_binding.node'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/home/nama/working/Canvas-WEB/node_modules/@tensorflow/tfjs-node/dist/index.js:44:16)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

但是当我尝试将@tensorflow/tfjs 导入为

But when i try to import @tensorflow/tfjs as

const tf = require('@tensorflow/tfjs')

没有遇到错误.

我使用 npm as 安装了 @tensorflow/tfjs-node

I installed @tensorflow/tfjs-node using npm as

sudo npm install @tensorflow/tfjs-node

然后得到一个输出(如下):

Then got an output (follows):

@tensorflow/tfjs-node@1.2.7 install /home/nama/working/Canvas-WEB/node_modules/@tensorflow/tfjs-node


node scripts/install.js

CPU-linux-1.2.7.tar.gz
(node:29606) UnhandledPromiseRejectionWarning: Error: EACCES: permission denied, mkdir '/home/nama/working/Canvas-WEB/node_modules/@tens
orflow/tfjs-node/deps'
(node:29606) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async 
function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:29606) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not h
andled will terminate the Node.js process with a non-zero exit code.
npm WARN canvas-web@1.0.0 No repository field.

+ @tensorflow/tfjs-node@1.2.7
updated 1 package and audited 276 packages in 12.428s
found 0 vulnerabilities```

推荐答案

这里有两个问题.

以 root 身份安装软件包

您想以 root 身份安装依赖项,但 npm 默认不会以 root 身份运行.传递以下参数以启用root权限:

You want to install the dependencies as root but npm will not run as root by default. Pass the following arguments to enable root privileges:

sudo npm install @tensorflow/tfjs-node --unsafe-perm=true --allow-root

您还应该重新考虑使用另一个(不是 root)来运行您的脚本.

You should also reconsider using another (not root) to run your script.

Tensorflow.js 需要

tensorflow/tfjs-node 的 require 不会按照你的方式工作,包 @tensorflow/tfjs-node 不会导出任何东西,只是需要使用本机 C++ 绑定.

The require of tensorflow/tfjs-node will not work the way you do it, the package @tensorflow/tfjs-node will not export anything and is only required to use the native C++ bindings.

这是应该如何完成的(引用自教程):

Here is how it should be done (quote from the tutorial):

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

这篇关于无法在 nodejs 中导入 @tensorflow/tfjs-node的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆