1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-TensorFlowjs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING_MISSING_OP.md 5.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 10:54 95ac927

Как добавить новый оператор в репозиторий TF.js

Шаг 1. Добавьте новый оператор в директорию операторов tfjs-core.

Необходимые условия

  1. Оператор должен уже поддерживаться в API TensorFlow.
  2. Оператор еще не должен поддерживаться в TF.js, см. список поддерживаемых операторов.
  3. Проверьте здесь наличие различных операторов, поддерживающихся различными бэкендами.

Детали реализации

  1. Создайте новый оператор в директории tfjs-core/ops.

    Файл оператора должен содержать следующие элементы:

    1. Информацию о лицензии.
    2. Комментарий JSDoc.
    3. Валидацию входных данных, если требуется.
    4. Делегирование выполнения правильному ядру через ENGINE.runKernel().

    Кроме того, чтобы делегирование ядра работало правильно, в файле kernel_names.ts определите:

    1. Название ядра.
    2. Тип входных данных.
    3. Тип атрибутов.
  2. Экспортируйте файл оператора в ops.ts в той же директории.

  3. Добавьте тесты для оператора в той же директории. Имя файла теста должно совпадать с именем файла оператора с суффиксом _test.

  4. Исключите тест из всех бэкендов и добавьте аннотацию "ещё не реализовано". Укажите место исключения теста для каждого бэкэнда ниже:бэкенд CPU

В файле run_tests.ts, методе customInclude, добавьте:

    // Still not implemented.
    if (testName.includes(test_name)) {
      return false;
    }

бэкенд WebGL

В файле setup_test.ts, методе customInclude, добавьте:

    // Still not implemented.
    if (testName.includes(test_name)) {
      return false;
    }

бэкенд Node

В файле run_tests.ts, списке IGNORE_LIST, добавьте test_name в этот список.

Примеры PR

Шаг 2. Добавьте новое ядро в бэкенд.

Детали реализации

  1. Создайте новое ядро в директории kernels соответствующего бэкенда.

    Файл ядра должен содержать следующие элементы:

    1. Информацию о лицензии.
    2. Реализацию ядра и его экспорт.
    3. Экспорт конфигурации ядра kernelConfig.
  2. Зарегистрируйте ядро в файле register_all_kernels.ts соответствующего бэкенда.

  3. Удалите операцию из списка исключений тестирования в соответствующем бэкенд-компоненте. Для wasm бэкенда добавьте тест в список включения.

Примеры PR

  1. Добавьте отображение операции в списке операций ts файла, используйте своё суждение для назначения категории операции: tfjs-converter/python/tensorflowjs/op_list/{соответствующая_категория_операции}.json. Соответствующий .ts файл будет автоматически создан при сборке конвертера. Используйте API TF C++ операции как справочник для tfOpName, входов и атрибутов.2. Найдите соответствующего исполнителя для операции и добавьте операцию в переключатель. Исполнители находятся в tfjs-converter/src/operations/executors.

  2. Добавьте тест в соответствующий файл тестирования исполнителя.

  3. Обновите документацию поддерживаемых операций в tfjs-converter/docs/supported_ops.md.

Примеры PR

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-TensorFlowjs.git
git@api.gitlife.ru:oschina-mirror/mirrors-TensorFlowjs.git
oschina-mirror
mirrors-TensorFlowjs
mirrors-TensorFlowjs
master