如何在 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 一起使用,您需要自己安装一些软件包(tensorflow
、python
、...)。
为目标设备下载包
- 张量流
- 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 中。
我想在tizen中使用tensorflow
Tizen studio 的架构是 x86。
但是tensorflow只有64位。
如何在 tizen studio 中使用 tensorflow??
Tizen studio 只是开发工具。
Tizen支持x86-64(AMD64),您可以在Tizen上使用tensorflow。
如果您想将 Tizen 与 tensorflow 一起使用,您需要自己安装一些软件包(tensorflow
、python
、...)。
为目标设备下载包
- 张量流
- 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 中。