2017/12/29

tensorflow - some links

原始說明使用 tensorflow 學 fibonacci 的文章只剩下 這邊 有說明到。
原始作者已經把 sample code 刪掉了。

這一篇應該就是 Josh Gordon 說明tensorflow 的投影片。

example 已經改成比較有意義(?)的用 tensorflow 做回歸分析。

這樣的範力就很多..像 這個 就是中文的。

結果是 AI 神奇寶貝訓練大師的 教學有...ML Lecture 9-3: Fizz Buzz in Tensorflow (sequel)
上面的 Link 就是原 po...

2017/12/19

yocto qt-gstreamer

qt-gstreamer 的 recipes 在 meta-qt5-extra 中。
所以把 meta-qt5-extra clone 下來。(top folder)。
然後修改 meta-st/meta-st/demo/recipes-core-st/images/st-demo-qt-image.bb
在 IMAGE_QT_OPTIONAl_PART 最後加上 qt-gstreamer

然後 照一邊 bitbake image 就可以。

然後是做 sdk。

在 meta-qt5/ercipes-qt/packagegroup-qt5-toolchain-target.bb
RDEPENDS_${PN} += ..
加上 qt-gstreamer-dev

然後 bitbake meta-toolchain-qt5

2017/12/15

try Qualcomm NPE SDK

就是照著 snapdragon-neural-processing-engine
另外,forume 有一篇問到 625 - Forums - Snapdragon 625 (MSM8953) is available for using GPU?
I'd like to know that Snapdragon 625 is available for GPU.
 
On this URL, SnapDragon 625(MSM8953) supports SNPE.
 
https://developer.qualcomm.com/software/snapdragon-neural-processing-engine
 
Supported devices: 
SnapDragon 820, 835, 625, 626, 650, 652, 653, 660 and 630
 
So I measured to Qualcomm's SNPE demo app(alexnet) on MSM8953 device.
Then I changed device CPU to GPU on demo app, But it seems not to work GPU.
 
MSM8953
   CPU
      ave: 0.209[sec]
      max: 0.150[sec]
      min: 0.163[sec]
   
   GPU
      ave: 0.182[sec]
      max: 0.170[sec]
      min: 0.172[sec]
 
On MSM8953 device, libOpenCL.so is allocated here:
 
    /system/vendor/lib/libOpenCL.so
 
 
And on this document, it looks that SnapDragon 625(MSM8953) is not supported device.
 
snpe-1.2.2/doc/html/overview.html
Supported devices: 
SnapDragon 835, 821, 820, 660, 652
 
I'd like to know Snapdragon 625 (MSM8953) is not supported or not.
Or what is needed to check this device is available for GPU ?
(OpenCL's version or other infomation?)
 
FYI, other device's perfomance that I tried on Qualcomm's SNPE demo app(alexnet).
 
Snapdragon 820(MSM8996)
   CPU 
      ave: 1.777[sec]
      max: 1.947[sec]
      min: 1.671[sec]
 
   GPU
      ave: 0.035[sec]
      max: 0.033[sec]
      min: 0.034[sec]
 
Snapdragon 810(MSM8994)
 
   CPU
      ave: 0.216[sec]
      max: 0.167[sec]
      min: 0.187[sec]
 
   GPU
      ave: 0.077[sec]
      max: 0.048[sec]
      min: 0.059[sec]
看起來625 的 gpu 似乎無作用。


follow : getting start

要先註冊,所以用公司的 email 註冊。
password:AKB48hellokitty

登入,下載..snpe-1.8.0

為了跟 getting start 一樣,所以從 android studio 的 android sdk manager 安裝 ndk:install ndk from sdk manager
Download tensorflow model 時,要先active tensorflow (因為是裝在virtualenv):
source ~/tensorflow/bin/activate
python ./models/inception_v3/scripts/setup_inceptionv3.py -a ./temp-assets-cache -d
需要 Android-26 版本的 Sdk
用androidstudio build fail,說他不認識,沒辦法讀取 raw_alexnet.zip.flat 的 metadta.
用 command build 說找不到 gradlw-3.0.1

follow debug message,到 https://jcenter.bintray.com/com/android/tools/build/gradle/ 去看,只有 2.3.3,所以改 build.gradle:
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
    
然後出現找不到 tools.jar..
apt-get install default-jdk..
build 成功。

adb install app-debug.apk 到 APQ8053EVB
要記得 adb remount,然後 安裝 3 次才成功,前兩次都是download 到一半 no response。
執行..
因為解析度的關係,影像幾乎看不到,但是一樣可以測試。
發現 使用 CPU 和 GPU 的差異不大(和論壇內容一致)

使用 alex 的 zenfone ? (625) 的手機測試:

sample program 內建5張圖:
分別可以選擇使用 cpu , gpu 辨識。

2017/12/12

phabricator -- test install

ref: 但是..
stretch (9), default php 版本是 7
所以第一個安裝就fail...
apt-get install git mysql-server apache2 dpkg-dev php5 php5-mysql php5-gd php5-dev php5-curl php-apc php5-cli php5-json
php-apc 沒有,然後 php5 的一堆not meet dependency..

所以先裝 php 就好...
就自動裝了 apache2, php7.0-cli, php7.0-json
其他還要自己裝 (?)

2017/12/11

test .. video from twitter embedded code..

這只是測試一下 twitter 的內嵌影片的標記

2017/12/7

就 download snpe-1.8.zip
解開,follow getting start, rename to snpe-sdk

follow instructions, install tensorflow on ~/tensorflow:
sudo apt-get install python-pip python-dev python-virtualenv 
mkdir ~/tensorflow; virtualenv --system-site-packages ~/tensorflow; source ~/tensorflow/bin/activate 
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl
其實就是參考 tensorflow, intall linux

run dependencies.sh 和 check_python_depends.sh 檢查系統需要的 package 是不是都 OK 了。
設好環境變數 ANDROID_NDK_ROOT 之後,run tensorflow 的環境設定:
source ~/snpe-sdk/bin/envsetup.sh -t ~/tensorflow/
INFO: Setting TENSORFLOW_HOME=/home/charles-chang/tensorflow/
INFO: Found ANDROID_NDK_ROOT at /home/charles-chang/Android/Sdk/ndk-bundle
WARNING: Cannot find /home/charles-chang/snpe-sdk/lib/arm-android-gcc4.9/libgnustl_shared.so
         libgnustl_shared.so found at /home/charles-chang/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_shared.so
         copying to /home/charles-chang/snpe-sdk/lib/arm-android-gcc4.9
INFO: Adding libgnustl_shared.so to /home/charles-chang/snpe-sdk/android/snpe-release.aar
  adding: jni/armeabi-v7a/libgnustl_shared.so (deflated 66%)
WARNING: Cannot find /home/charles-chang/snpe-sdk/lib/aarch64-android-gcc4.9/libgnustl_shared.so
         libgnustl_shared.so found at /home/charles-chang/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
         copying to /home/charles-chang/snpe-sdk/lib/aarch64-android-gcc4.9
INFO: Adding libgnustl_shared.so to /home/charles-chang/snpe-sdk/android/snpe-release.aar
  adding: jni/arm64-v8a/libgnustl_shared.so (deflated 73%)

download tensorflow model
source ~/tensorflow/bin/active
python models/inception_v3/scripts/setup_inceptionv3.py -a ./temp-assets-cache -d



2021 update --

snpe-1.49
說需要知道 tensorflow install folder.
我是用 conda 安裝,所以是在
~/miniconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow

額外需要...說..
SDK Android binaries built with clang require libc++_shared.so which is shipped with the SDK. (See Platform Runtime Libraries below).
但是好像是用 ndk build native C++ program 才要?

這個在/usr/lib/x86_64-linux-gnu/libatomic.so.1
system ld path,所以應該不用 copy...