Невозможно импортировать @tenorflow/tfjs-node в nodejs

Невозможно импортировать @tenorflow/tfjs-node в мою программу. Я пытался импортировать его следующим образом:

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)

Но когда я пытаюсь импортировать @tenorflow / tfjs как

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

Ошибка не обнаружена.

Я установил @tenorflow/tfjs-node, используя npm как

sudo npm install @tensorflow/tfjs-node

Затем получил вывод (следует):

@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```

2 ответа

Решение

Здесь есть две проблемы.

Установка пакета как root

Вы хотите установить зависимости от имени пользователя root, но npm по умолчанию не будет работать от имени пользователя root. Передайте следующие аргументы, чтобы включить привилегии root:

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

Вам также следует пересмотреть использование другого (не root) для запуска вашего скрипта.

Tensorflow.js требует

Требование tensorflow/tfjs-node не будет работать так, как вы делаете, пакет @tensorflow/tfjs-node ничего не экспортирует и требуется только для использования собственных привязок C++.

Вот как это должно быть сделано (цитата из учебника):

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

У меня была та же проблема, и я решил ее, выполнив команду ниже node_modules/@tensorflow/tfjs-node

$ cd node_modules/@tensorflow/tfjs-node/
$ npm install
> @tensorflow/tfjs-node@1.2.6 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

Также вы можете попробовать использовать 1.2.6 tfjs-node, с которым я смог работать.

https://github.com/tensorflow/tfjs-node

Другие вопросы по тегам