适用于Android的Tensorflow量化图

适用于Android的Tensorflow量化图,第1张

概述我正在尝试将量化图加载到 Android应用中. 我的BUILD文件包含 deps = ["//tensorflow/core:android_tensorflow_lib", "//tensorflow/contrib/quantization:cc_array_ops", "//tensorflow/contrib/quantization:cc_math_ops", 我正在尝试将量化图加载到 Android应用中.
我的BUILD文件包含

deps = ["//tensorflow/core:androID_tensorflow_lib","//tensorflow/contrib/quantization:cc_array_ops","//tensorflow/contrib/quantization:cc_math_ops","//tensorflow/contrib/quantization:cc_nn_ops","//tensorflow/contrib/quantization/kernels:quantized_ops"]

额外的量化代表适用于独立的C版本.

由于GemmLOWP中存在大量错误,我无法使用Bazel进行编译.在AndroID中包含gemmlowp和量化 *** 作的正确方法是什么?

这是一个示例错误:

external/gemmlowp/eight_bit_int_gemm/eight_bit_int_gemm.cc:125:13: error: 'int32_t' is not a member of 'std'   MatrixMap<std::int32_t,ResultOrder> result(c,m,n,ldc);

这是在Ubuntu 16.04上使用Bazel 0.3.0.

这里有一个要点,它有两次连续尝试构建包的输出 – 它第一次在highwayhash上失败而第二次是gemmlowp.
https://gist.github.com/ericdanz/81b799f2e0bbb3cc462aa3c90468c71b

最终得到它编译和运行在BUILD文件中为gemmlowp和highwayhash自由添加“-std = c 11”,并在量化ops中替换androID框架中的框架依赖.它产生了相当不同的结果,并且运行速度慢了约4倍(26-3200ms对6-800 ms).我会尝试做一些更深入的调查.

解决方法 这对我有用 – 它基本上是上面Eric D的所有评论的组合,但我想把它放在一个地方,对于遇到这个问题的新人来说:

在deps中将quantized_ops添加到AndroID应用程序的BUILD文件中的libtensorflow_demo.so:

deps = ["//tensorflow/core:androID_tensorflow_lib","//tensorflow/contrib/quantization/kernels:quantized_ops",]

修改tensorflow / contrib / quantization / kernels / BUILD中的quantized_ops的deps:

deps = [        "//tensorflow/contrib/quantization:cc_array_ops","//tensorflow/core:androID_tensorflow_lib",#"//tensorflow/core",#"//tensorflow/core:framework",#"//tensorflow/core:lib",#"//tensorflow/core/kernels:concat_lib_hdrs",#"//tensorflow/core/kernels:conv_ops",#"//tensorflow/core/kernels:ops_util_hdrs",#"//tensorflow/core/kernels:pooling_ops_hdrs",#"//tensorflow/core/kernels:eigen_helpers",#"//tensorflow/core/kernels:ops_util",#"//tensorflow/core/kernels:pooling_ops","//third_party/eigen3","@gemmlowp//:eight_bit_int_gemm",],

删除/注释掉tensorflow / contrib / quantization / ops / array_ops.cc,math_ops.cc和nn_ops.cc中的.Doc()部分.

在tensorflow / contrib / quantization / BUILD中修改cc_array_ops,cc_math_ops和cc_nn_ops的deps:

deps = [        #"//tensorflow/core:framework",

使用–cxxopt =“ – std = c 11”标志为AndroID应用程序运行bazel build命令.

总结

以上是内存溢出为你收集整理的适用于Android的Tensorflow量化图全部内容,希望文章能够帮你解决适用于Android的Tensorflow量化图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1123811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存