Я пытаюсь зарегистрировать пользовательскую операцию тензорного потока, которую позже смогу использовать в C ++. Операция требуется для использования уже существующей операции tenorflow, так как -
Output output1 = tensorflow::ops::DeepCopy(scope, tensor);
Я создал файл custom_op.cc
, который содержит следующее, как показано в официальной документации tenorflow, для создания пользовательского оператора (https://www.tensorflow.org/guide/create_op) -
- Определение интерфейса операции
- Реализация ядра для операции
- Регистрация его в ядре tenorflow
Я поместил custom_op.cc
в следующий каталог:
//tensorflow/core/user_ops/custom_op.cc
Информация о системе -
Версия Tensorflow - 1.14.0
Версия Bazel - 0.24.1
ОС - Windows 10 Professional
Когда я пытаюсь собрать этот пакет tenorflow с помощью bazel, возникает следующая проблема -
custom_op.cc
включает файл заголовка tensorflow/cc/ops/standard_ops.h
(мне пришлось включить его, потому что DeepCopy
объявлено в этом заголовочном файле), которое дополнительно содержит больше заголовков (tensorlfow/cc/ops/array_ops.h
, tensorflow/cc/ops/candidate_sampling_ops.h
и т. Д.), Но эти заголовки не существуют заранее в пакете tenorflow и генерируются при построении тензорного потока с помощью bazel.
Итак, при построении тензорного потока с помощью bazel с помощью следующей команды -
bazel build -c opt //tensorflow:libtensorflow_cc.so
я получаю следующую ошибку -
.\tensorflow/cc/ops/standard_ops.h(19): fatal error C1083: Cannot open include file: 'tensorflow/cc/ops/array_ops.h': No such file or directory
Я тоже пробовал с другими целями, но все равно получаю ту же ошибку.
Позже я попытался построить его как инкрементную сборку, сначала я успешно построил тензорный поток, используя bazel, без добавления какой-либо пользовательской операции тензорного потока, а затем снова попытался построить его после добавления custom_op.cc
файл в каталоге //tensorflow/core/user_ops/
, затем я получаю следующую ошибку -
undeclared inclusion(s) in rule '//tensorflow/core:user_ops_op_lib':
this rule is missing dependency declarations for the following files included by 'tensorflow/core/user_ops/custom_op.cc':
'bazel-out/x64_windows-opt/genfiles/tensorflow/cc/ops/array_ops.h'
Target //tensorflow:libtensorflow_cc.so failed to build
Любая идея, которую я могу использовать для решения этой проблемы?