Я пишу библиотеку TypeScript, которая в основном является клоном пакета вероятности тензора python. Я собираюсь использовать эту библиотеку в других проектах, как на стороне сервера, так и в браузере. Когда нижестоящий проект импортирует код вероятности tfjs, я бы хотел, чтобы бэкэнд tfjs использовал все доступные ресурсы во время выполнения пользователя.
Существует ли канонический способ написания кода библиотеки, чтобы он импортировал tensor
из '@ensorflow / tfjs', когда пакет должен использоваться на внешнем интерфейсе, но импортирует из '@ tenorflow / tfjs-node' , когда используется в среде узла?
Должен ли я настраивать это в своем инструменте сборки (веб-пакете)?
например. В моем пакете tfjs-вероятность у меня есть:
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()
и как-то моя библиотека была бы достаточно умна, чтобы знать, использовать ли тензорный поток (в браузере) или тензорный узел.