I have issues running my tfjs node app with and without the GPU library. In plain javascript, as in the examples - they simply require()
either @tensorflow/tfjs-node
or @tensorflow/tfjs-node-gpu
. However, in the Typescript setup I have, require
are not allowed. And I need to get the types out of the library. Hence, I "statically" import one of the versions around the place. Then, when the user chooses --gpu or not, i dynamically import()
the given module. The problem is that the "static imports" around the place has already caused a module load, and the dynamic load of the other module causes a crash along these lines:
E tensorflow/core/lib/monitoring/collection_registry.cc:81] Cannot register 2 metrics with the same name: /tensorflow/core/op_expansion/node_counter
How can I allow the user to select the right module to use, and still get the typing I need compile time?
A little side question: Can I just always use tfjs-node-gpu? This seems to work on my Mac, where I don't have Cuda, nor anything?