Чтобы собрать TensorFlow из исходного кода (для Node JS на Windows 10), я следовал инструкциям, приведенным на официальной странице .
После установки я следовал эти инструкции (GitHub) .
Для компиляции использовались следующие команды:
python ./configure.py
bazel build --config=opt --config=monolithic //tensorflow/tools/lib_package:libtensorflow
После завершения компиляции я получил файл bazel-bin/tensorflow/tools/lib_package/libtensorflow.tar.gz
и скопировал его в path-to-my-project/node_modules/@tensorflow/tfjs-node/deps
и разархивировать.
Я заметил, что предыдущие файлы, хранящиеся в папке deps
, отличаются. Исходное содержимое было:
│ LICENSE
│ THIRD_PARTY_TF_C_LICENSES
│
├───include
│ └───tensorflow
│ └───c
│ │ c_api.h
│ │ tf_attrtype.h
│ │ tf_datatype.h
│ │ tf_status.h
│ │ tf_tensor.h
│ │
│ └───eager
│ c_api.h
│
└───lib
tensorflow.dll
tensorflow.lib
После удаления старого содержимого и распаковки libtensorflow.tar.gz
новые файлы:
│ LICENSE
│ THIRD_PARTY_TF_C_LICENSES
│
├───include
│ └───tensorflow
│ ├───c
│ │ │ c_api.h
│ │ │ c_api_experimental.h
│ │ │ tensor_interface.h
│ │ │ tf_attrtype.h
│ │ │ tf_datatype.h
│ │ │ tf_file_statistics.h
│ │ │ tf_status.h
│ │ │ tf_tensor.h
│ │ │ tf_tstring.h
│ │ │
│ │ └───eager
│ │ c_api.h
│ │ c_api_experimental.h
│ │ dlpack.h
│ │
│ └───core
│ └───platform
│ ctstring.h
│ ctstring_internal.h
│
└───lib
tensorflow.dll
tensorflow_framework.dll
Больше инструкций нет, поэтому я предположил, что Я должен выполнить следующую команду:
npm rebuild @tensorflow/tfjs-node --build-from-source
Но я получил следующую ошибку:
> @tensorflow/tfjs-node@2.0.1 install C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node
> node scripts/install.js
CPU-windows-2.0.1.zip
* Building TensorFlow Node.js bindings
node-pre-gyp install failed with error: Error: Command failed: node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using needle for node-pre-gyp https download
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\SERVER\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:315:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Windows_NT 10.0.19041
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\SERVER\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "build" "--fallback-to-build" "--module=C:\\tensorflow-node-test\\node_modules\\@tensorflow\\tfjs-node\\lib\\napi-v6\\tfjs_binding.node" "--module_name=tfjs_binding" "--module_path=C:\\tensorflow-node-test\\node_modules\\@tensorflow\\tfjs-node\\lib\\napi-v6" "--napi_version=6" "--node_abi_napi=napi" "--napi_build_version=6" "--node_napi_label=napi-v6"
gyp ERR! cwd C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node
gyp ERR! node -v v12.18.2
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Users\SERVER\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js build --fallback-to-build --module=C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node\lib\napi-v6\tfjs_binding.node --module_name=tfjs_binding --module_path=C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node\lib\napi-v6 --napi_version=6 --node_abi_napi=napi --napi_build_version=6 --node_napi_label=napi-v6' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (C:\tensorflow-node-test\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:315:20)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
node-pre-gyp ERR! System Windows_NT 10.0.19041
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\tensorflow-node-test\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node
node-pre-gyp ERR! node -v v12.18.2
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! not ok
@tensorflow/tfjs-node@2.0.1 C:\tensorflow-node-test\node_modules\@tensorflow\tfjs-node
Если я выполню npm rebuild @tensorflow/tfjs-node --build-from-source
с исходными файлами папки deps
, все будет работать отлично.
Какие шаги после компиляции и копирования libtensorflow.tar.gz
в папку deps
?