license import './register_all_kernels' ; import * as tf from '@tensorflow/tfjs' ; import * as path from 'path' ; import { ProgbarLogger } from './callbacks' ; import { nodeFileSystemRouter } from './io/file_system' ; import * as nodeIo from './io/index' ; import { NodeJSKernelBackend } from './nodejs_kernel_backend' ; import { TFJSBinding } from './tfjs_binding' ; import * as nodeVersion from './version' ; const binary = require ( '@mapbox/node-pre-gyp' ) ; const bindingPath = binary . find ( path . resolve ( path . join ( __dirname , '/../package.json' ) ) ) ; const fs = require ( 'fs' ) ; if ( ! fs . existsSync ( bindingPath ) ) { throw new Error ( `The Node.js native addon module (tfjs_binding.node) can not ` + `be found at path: ` + String ( bindingPath ) + `. \nPlease run command ` + `'npm rebuild @tensorflow/tfjs-node` + ( String ( bindingPath ) . indexOf ( 'tfjs-node-gpu' ) > 0 ? `-gpu` : `` ) + ` --build-addon-from-source' to ` + `rebuild the native addon module. \nIf you have problem with building ` + `the addon module, please check ` + `https://github.com/tensorflow/tfjs/blob/master/tfjs-node/` + `WINDOWS_TROUBLESHOOTING.md or file an issue.` ) ; } const bindings = require ( bindingPath ) ; export const version = { ... tf . version , 'tfjs-node' : nodeVersion . version } ; export const io = { ... tf . io , ... nodeIo } ; export * from '@tensorflow/tfjs' ; export * from './node' ; const pjson = require ( '../package.json' ) ; tf . registerBackend ( 'tensorflow' , ( ) => { return new NodeJSKernelBackend ( bindings as TFJSBinding , pjson . name ) ; } , 3 ) ; const success = tf . setBackend ( 'tensorflow' ) ; if ( ! success ) { throw new Error ( `Could not initialize TensorFlow backend.` ) ; } tf . io . registerLoadRouter ( nodeFileSystemRouter ) ; tf . io . registerSaveRouter ( nodeFileSystemRouter ) ; tf . registerCallbackConstructor ( 1 , ProgbarLogger ) ;