tensorflow lite 빌드는 묘하게 갈리는구나..
일단 static library는 bazel 도움 없이 스크립트, make로 빌드하게 되어있고
./tensorflow/lite/tools/make/download_dependencies.sh
./tensorflow/lite/tools/make/build_aarch64_lib.sh
so는 위의 스크립트로는 못하고 bazel의 도움을 받아야 빌드할 수 있는데
3단계. ARM64 바이너리 빌드하기
C 라이브러리
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
C++ 라이브러리
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
[링크 : https://www.tensorflow.org/lite/guide/build_arm64?hl=ko]
cross compile은 --config=를 통해서 지정이 가능하나, 특정 컴파일러를 쓰도록 지정은 어떻게 하는지 찾아봐야 겠다.
구글 페이지에는 elinux_aarch64만 보이는데 .bazelrc를 열어보니 elinux_armhf 도 존재한다(32bit?)
그리고 monolithic이 해결책일줄 알았는데.. 단일 so를 만드는 옵션일뿐.. select_tf_ops 랑은 상관이 없나보다..
# Embedded Linux options (experimental and only tested with TFLite build yet)
# elinux: General Embedded Linux options shared by all flavors.
# elinux_aarch64: Embedded Linux options for aarch64 (ARM64) CPU support.
# elinux_armhf: Embedded Linux options for armhf (ARMv7) CPU support.
# Other build options:
# short_logs: Only log errors during build, skip warnings.
# verbose_logs: Show all compiler warnings during build.
# monolithic: Build all TF C++ code into a single shared object.
# dynamic_kernels: Try to link all kernels dynamically (experimental).
# libc++: Link against libc++ instead of stdlibc++
'프로그램 사용 > yolo_tensorflow' 카테고리의 다른 글
tensorflow lite SELECT_TF_OPS (0) | 2021.02.02 |
---|---|
saved_model_cli (0) | 2021.02.02 |
tensorflow bazel build (0) | 2021.02.01 |
convert from tensorflow to tensorflow lite (0) | 2021.02.01 |
tflite ERROR: tensorflow/lite/core/subgraph.cc BytesRequired number of elements overflowed. (0) | 2021.01.29 |