Невозможно импортировать @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, с которым я смог работать.