More Related Content
More from Yuki Kikuchi (9)
2018 08 18_python_ml_restart_embedded_ai
- 3. void main( void ){
q15_t input[7];
q15 result[2];
float32_t out[2];
while(1){
……
input[0] = x1;
input[1] = x2;
arm_nn_mult_q15(input, input, input+2, 15, 2);
arm_nn_mult_q15(input, input+1, input+4, 15, 1);
input[5] = arm_sin_q15(x1);
input[6] = arm_sin_q15(x2);
predict(input, result);
arm_q15_to_float(result, out, 2);
printf( A: %f B: %f , out[0], out[1]);
}
}
void predict(q15_t *input_vector, q15_t *ret){
q15_t out_l1[6], out_l2[2];
arm_fully_connected_q15(input_vector, weight_l1, 6, 0, 15, bias_l1, out_l1, NULL);
arm_nn_activations_direct_q15(out_l1, 6, 1, ARM_TANH);
arm_fully_connected_q15(out_l1, weight_l2, 2, 0, 15, bias_l2, out_l2, NULL);
arm_nn_activations_direct_q15(out_l2, 2, 1, ARM_TANH);
arm_softmax_q15(out_l2, 2, ret);
}
Q15: 16ビット符号付固定小数点
- 1から (1 - 2-15)まで表現できる
Q12だと -8から(8 - 2-12)まで
- 4. 自己紹介
• IoTフルスタックフリーランス (2012 - )
• AIの勉強中・業務応用開発は現在進行形
• IoTLT新潟
• Prototype Cafe - シェアオフィス兼open IoT作業所運営
• 海で遊ぶのが好きで、東京から新潟へ移住。仕事は変わらず
• LINE BOOT AWARDS 2018支援中
- 20. ARM Project Trillium
• 2018/4、ARMによる人工知能系のプロジェクト発表。
• 数10MHz 以上で動くARM MPU で NNが使える。
• https://community.arm.com/processors/b/blog/
posts/ai-project-trillium?
_ga=2.21501691.1996547401.1532581007-11277
50945.1528858773
展示会でみただろうに、というツッコミは想定範囲内。いいえ、私は見てません。
- 23. ARM NN video
• http://connect.linaro.org/resource/hkg18/
hkg18-312/
- 31. ARM CMSIS-DSP/NN ライブラリ
• https://github.com/ARM-software/CMSIS_5 あたり
を見るといいと思います。
• CPUによる実装も書いてあります。FPUがある場合はFPU
を使った高速な演算をしてくれます。
•
- 36. メモリ使用量と計算速度
• メモリたくさん必要っていうけど? => ROM? RAM? なんの
メモリかによります。ざっくりいってニューロンが少なければ
少なくなります。
• C言語でやるよりDSP/FPU(あればGPU)使えば非常に早くなり
ます。
• 各社より出ている計算ライブラリを使用すると高速です。(バ
グある場合もあり)
- 40. 参考&謝辞
• インターフェース誌 2018/6月号 辰岡さんの記事
• 辰岡さん(東京)
• Blincamの Sumanthさん (新潟市 Prototype Cafeにいま
す)
• Python プロフェッショナルプログラミング 第3版
• ARMのAI戦略 : http://eetimes.jp/ee/articles/1803/23/
news070_2.html
- 42. LINE BOOT AWARDS 2018
@LINE_DEV
@linebootawards
https://www.line-community.me/awards/