Скорость работы собственной библиотеки.so, сгенерированной Tensorflow AOT tf_library
Я собрал исходные файлы tenorflow и использовал tfcompile для компиляции графиков TensorFlow в исполняемый код. График является хорошо известным графом передачи нейронных стилей, предварительно обученным ранее. Я следовал инструкциям в https://www.tensorflow.org/versions/master/experimental/xla/tfcompile, использовал опережающий компилятор (AOT) для генерации исполняемого двоичного файла с tfcompile из графа передачи стилей.
основные моменты генерации исполняемого двоичного файла описаны в приведенных выше руководствах
Сначала я выбрал "включить XLA" при запуске./configure, чтобы включить поддержку XLA. Затем настройте подграф с помощью файла "*.config.pbtxt", чтобы определить каналы и выборки. После этого я использовал макрос сборки tf_library, определенный в //tensorflow/compiler/aot/tfcompile.bzl, чтобы преобразовать граф в cc_library. Cc_library состоит из объектного файла, содержащего код, сгенерированный из графа, вместе с файлом заголовка, который предоставляет доступ к сгенерированному коду. Я написал jni-нативный код cc для вызова этого cc_library и использовал среду // tenorflow/contrib/android/BUILD для создания этого кода в нативной библиотеке.so для android. Я использовал Android Studio для запуска приложения с этой библиотекой.so. Я ожидал, что время работы этой нативной библиотеки.so со встроенным графом тензорного потока, прошедшего предварительную подготовку, для перевода фотографии в другой стиль будет быстрее по сравнению с прямым запуском графа с ночным двоичным файлом тензорного потока, загруженным из github. Однако факт заключается в том, что скомпилированная собственная библиотека.so библиотеки AOT в 4,64 раза медленнее, чем прямой запуск двоичного файла тензорного потока для вызова предварительно обученного графа pb. Что-то не так с моей операцией?