Я тестировал модели тензорного потока на Exynos 7420 с помощью benchmark_model. Я хотел бы ускорить проверку квантования за Pete Warden's blog, но пока не удалось скомпилировать benchmark_model с квантованием, поскольку они ломают ряд вещей.Квантование бенчмаркинга на Android
Я следовал принципам, перечисленным в этом stack overflow thread:
// tensorflow/инструменты/ориентир/BUILD cc_binary
deps = [":benchmark_model_lib",
"//tensorflow/contrib/quantization/kernels:quantized_ops",
],
// tensorflow/вно/квантования/ядра/BUILD:
deps = [
"//tensorflow/contrib/quantization:cc_array_ops",
"//tensorflow/contrib/quantization:cc_math_ops",
"//tensorflow/contrib/quantization:cc_nn_ops",
#"//tensorflow/core",
#"//tensorflow/core:framework",
#"//tensorflow/core:lib",
#"//tensorflow/core/kernels:concat_lib_hdrs",
#"//tensorflow/core/kernels:conv_ops",
#"//tensorflow/core/kernels:eigen_helpers",
#"//tensorflow/core/kernels:ops_util",
#"//tensorflow/core/kernels:pooling_ops",
"//third_party/eigen3",
"@gemmlowp//:eight_bit_int_gemm",
],
Затем запустите:
Базэл построить -c неавтоматического --cxxopt = '- х td = gnu ++ 11 '- crosstool_top = // external: android/crosstool --cpu = armeabi-v7a --host_crosstool_top = @ bazel_tools // tools/cpp: toolchain tensorflow/tools/benchmark_model --verbose_failures
Какая (со всеми остальными инструкциями в связанном сообщении) преуспевает, за исключением того, что она не связана с pthread.
Я попытался удалить -lpthread в tensorflow/tensorflow.bzl tfcopts(), а также в тензорном потоке/tools/proto_text/BUILD, и tensorflow/cc/BUILD.
def tf_copts():
return (["-fno-exceptions", "-DEIGEN_AVOID_STL_ARRAY"] +
if_cuda(["-DGOOGLE_CUDA=1"]) +
if_android_arm(["-mfpu=neon"]) +
select({"//tensorflow:android": [
"-std=c++11",
"-DMIN_LOG_LEVEL=0",
"-DTF_LEAN_BINARY",
"-O2",
],
"//tensorflow:darwin": [],
"//tensorflow:ios": ["-std=c++11",],
#"//conditions:default": ["-lpthread"]}))
"//conditions:default": []}))
Все еще получаю сообщение об ошибке.
external/androidndk/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpthread
collect2: error: ld returned 1 exit status
Любая помощь очень ценится, я довольно застрял.
Env:
- Ubuntu 14,04
- tensorflow фиксации # 4462
- android_ndk_r11c
- андроид-СДК-Линукс r24.4.1
- Python 2.7.12 :: Continuum Analytics, Inc.
- ./configure без поддержки GCP, HDFS или графического процессора
Отлично, теперь он работает, и да, мы по-прежнему оптимизируем квантованные операционные системы, поэтому не принимайте текущие скорости как максимум, который вы можете получить. –