Suhas Nama
Suhas Nama

Reputation: 133

Cannot import @tensorflow/tfjs-node in nodejs

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

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

And received an error as follows:

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)

But when i try to import @tensorflow/tfjs as

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

No error was encountered.

I installed @tensorflow/tfjs-node using npm as

sudo npm install @tensorflow/tfjs-node

Then got an output (follows):

@tensorflow/[email protected] 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 [email protected] No repository field.

+ @tensorflow/[email protected]
updated 1 package and audited 276 packages in 12.428s
found 0 vulnerabilities```

Upvotes: 7

Views: 16483

Answers (2)

tomoima525
tomoima525

Reputation: 846

I had the same issue and solved it by running the command below at node_modules/@tensorflow/tfjs-node

$ cd node_modules/@tensorflow/tfjs-node/
$ npm install
> @tensorflow/[email protected] install /Users/tomoima525/workspace/javascript/tensorflow/baseball/node_modules/@tensorflow/tfjs-node
> node scripts/install.js

CPU-darwin-1.2.7.tar.gz
* Building TensorFlow Node.js bindings

Also you might want to try with 1.2.6 of tfjs-node, which I was able to work.

https://github.com/tensorflow/tfjs-node#mac-os-x-requires-xcode

Upvotes: 1

Thomas Dondorf
Thomas Dondorf

Reputation: 25240

There are two problems here.

Installation of the package as 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

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

Tensorflow.js require

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');

Upvotes: 6

Related Questions