我正在编写一个 TypeScript 库,它基本上是 python tensorflow-probability 包的克隆。我打算在其他项目中使用这个库,包括服务器端和浏览器。当下游项目导入 tfjs 概率代码时,我希望 tfjs 后端利用用户运行时中可用的任何资源。
是否有一种规范的方法来编写库代码,以便tensor
在应该在前端使用包时从“@tensorflow/tfjs”导入,但在节点中使用时从“@tensorflow/tfjs-node”导入环境?
我应该在我的构建工具(webpack)中配置它吗?
例如。在我的 tfjs-probability 包中,我有:
import { tensor } from '@tensorflow/tfjs'; // alternately '@tensorflow/tfjs-node'
export class NormalDist { //code that uses tensors }
我想象我会在下游项目中做这样的事情:
import { NormalDist } from 'tfjs-probability';
const n = new NormalDist()
不知何故,我的库会足够聪明,知道是使用 tensorflowjs webgl(在浏览器中)还是 tensorflowjs-node。