如何在 tizen studio 中使用 Tensorflow?

How can I use Tensorflow in tizen studio?

我想在tizen中使用tensorflow

Tizen studio 的架构是 x86。
但是tensorflow只有64位。 如何在 tizen studio 中使用 tensorflow??

Tizen studio 只是开发工具。
Tizen支持x86-64(AMD64),您可以在Tizen上使用tensorflow。

如果您想将 Tizen 与 tensorflow 一起使用,您需要自己安装一些软件包(tensorflowpython、...)。

为目标设备下载包

  • 张量流
  • python
  • db4
mkdir tmp
cd tmp

BASE_URL='http://download.tizen.org/snapshots/tizen/5.0-base/latest/repos/standard/packages/armv7l/'
wget -O - $BASE_URL 2>/dev/null | egrep 'db4-[0-9]' | awk -F'"' '{print }' | xargs -i wget $BASE_URL{}
wget -O - $BASE_URL 2>/dev/null | egrep 'python-[0-9]' | awk -F'"' '{print }' | xargs -i wget $BASE_URL{}

UNIFIED_URL='http://download.tizen.org/snapshots/tizen/5.0-unified/latest/repos/standard/packages/armv7l/'
wget -O - $UNIFIED_URL 2>/dev/null | grep 'tensorflow-v' | awk -F'"' '{print }' | xargs -i wget $UNIFIED_URL{}

在目标设备上安装包

sdb root on; sdb shell 'mount -o remount,rw /'
sdb push *.rpm /tmp

sdb shell 'cd /tmp; rpm -ivh --force db4*.rpm; rpm -ivh --force *python*.rpm; rpm -ivh --force tensorflow*.rpm'

cd ..
rm -r tmp

下载构建所需的包

  • 张量流
  • tensorflow-devel
  • libpython-2.7
  • libgfortran
  • libgomp
mkdir tmp
cd tmp

BASE_URL='http://download.tizen.org/snapshots/tizen/5.0-base/latest/repos/standard/packages/armv7l/'
wget -O - $BASE_URL 2>/dev/null | grep 'libpython-2.7' | awk -F'"' '{print }' | xargs -i wget $BASE_URL{}
wget -O - $BASE_URL 2>/dev/null | grep 'libgfortran-' | awk -F'"' '{print }' | xargs -i wget $BASE_URL{}
wget -O - $BASE_URL 2>/dev/null | grep 'libgomp-' | awk -F'"' '{print }' | xargs -i wget $BASE_URL{}

UNIFIED_URL='http://download.tizen.org/snapshots/tizen/5.0-unified/latest/repos/standard/packages/armv7l/'
wget -O - $UNIFIED_URL 2>/dev/null | grep 'tensorflow' | grep -v 'lite' | awk -F'"' '{print }' | xargs -i wget $UNIFIED_URL{}

提取header等文件并有选择地导入到项目lib文件夹

ls *.rpm | xargs -i bash -c "rpm2cpio {} | cpio -idmv"

cd usr/lib/
ln -s libpython2.7.so.1.0 libpython2.7.so
ln -s libgfortran.so.3 libgfortran.so

cp libgfortran.so* libgomp.so.1* libpython2.7.so* libpywrap_tensorflow_internal.so ../../../lib/

cd ../include
cp -r tensorflow ../../../inc/

cd ../../..
rm -r tmp

在 Tizen Studio 项目中设置包含路径

screenshot

设置库路径并将库添加到 Tizen Studio 项目

screenshot

请注意,如果你想为模拟器构建项目,你必须使用 x86 架构的库文件,所以你必须将上面所有 URL 中的 "armv7l" 替换为 "i686"

如果你能负担得起使用Tensorflow-Lite,你可以直接在Tizen-latest中使用它。很快,随着 Tizen 5.5 M2,机器学习 API 将允许应用程序开发人员直接插入 .tflite 模型以及他们自己的本机模型(作为 .so 文件或函数),而无需担心导入外部库.

无论如何,如果你现在想做,使用Tizen-latest(Tizen:Unified project in build.tizen.org),直接使用tensorflow-lite-dev.rpm包或者使用nnstreamer- capi 包,它为您提供了一些易于使用的接口。请注意,nnstreamer (https://github.com/nnsuite/nnstreamer) 将成为 Tizen-Machine-Learning(其机器学习 API 集的后端)的主要引擎。尽管 nnstreamer 与 Tensorflow(非精简版)、Caffe2、PyTorch、ROS 等兼容,但它们默认不包含在 Tizen 中。