Как скомпилировать пользовательские операции в tensorflow без необходимости их динамического импорта в python?

Я проверил документацию tensorflow, и они, кажется, дают информацию только о компиляции пользовательской операции с помощью правила bazel:

load("//tensorflow:tensorflow.bzl", "tf_custom_op_library")

tf_custom_op_library(
    name = "zero_out.so",
    srcs = ["zero_out.cc"],
)

Как только bazel соберет его, вы получите файл zero_out.so, который можно импортировать в python, как показано ниже:

import tensorflow as tf
zero_out_module = tf.load_op_library('./zero_out.so')

В любом случае вы можете связать custom_ops во время сборки bazel для tensorflow, чтобы вам не нужно было вручную импортировать пользовательские операции через tf.load_op_library?


person Mustafa A. Khan III    schedule 07.08.2017    source источник
comment
потому что пользовательские операции tensorflow написаны на C++ и скомпилированы с помощью правила cc_library в bazel.   -  person Mustafa A. Khan III    schedule 07.08.2017


Ответы (1)


Нет официально поддерживаемой точки расширения для загрузки ваших собственных операций, кроме их динамической загрузки.

Если вы создаете тензорный поток из исходного кода и готовы его взломать, нетрудно представить, что ваши операции являются основными операциями, но это не поддерживается.

person Alexandre Passos    schedule 07.08.2017