Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
Transformerを雰囲気で理解する
AtsukiYamaguchi1
Skip Connection まとめ(Neural Network)
Yamato OKAMOTO
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
研究効率化Tips Ver.2
cvpaper. challenge
動作認識の最前線:手法,タスク,データセット
Toru Tamaki
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
Deep Learning JP
深層生成モデルと世界モデル
Masahiro Suzuki
モデル高速化百選
Yusuke Uchida
1
of
55
Top clipped slide
TensorFlow Liteを使った組み込みディープラーニング開発
Feb. 29, 2020
•
0 likes
7 likes
×
Be the first to like this
Show More
•
3,380 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Engineering
PyCon mini Shizuoka2020
Makoto Koike
Follow
Farmer
Advertisement
Advertisement
Advertisement
Recommended
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
Yusuke Uchida
9K views
•
56 slides
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
14K views
•
38 slides
近年のHierarchical Vision Transformer
Yusuke Uchida
12.2K views
•
46 slides
【DL輪読会】ViT + Self Supervised Learningまとめ
Deep Learning JP
3.1K views
•
52 slides
モデルアーキテクチャ観点からの高速化2019
Yusuke Uchida
17.6K views
•
90 slides
【メタサーベイ】Neural Fields
cvpaper. challenge
1.6K views
•
46 slides
More Related Content
Slideshows for you
(20)
Transformerを雰囲気で理解する
AtsukiYamaguchi1
•
4.5K views
Skip Connection まとめ(Neural Network)
Yamato OKAMOTO
•
16.8K views
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
•
11.9K views
研究効率化Tips Ver.2
cvpaper. challenge
•
17.4K views
動作認識の最前線:手法,タスク,データセット
Toru Tamaki
•
1.7K views
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
Deep Learning JP
•
2.3K views
深層生成モデルと世界モデル
Masahiro Suzuki
•
16K views
モデル高速化百選
Yusuke Uchida
•
24.1K views
3D CNNによる人物行動認識の動向
Kensho Hara
•
23.3K views
論文紹介 Anomaly Detection using One-Class Neural Networks (修正版
Katsuki Ohto
•
5.3K views
猫でも分かるVariational AutoEncoder
Sho Tatsuno
•
129.8K views
Transformer 動向調査 in 画像認識(修正版)
Kazuki Maeno
•
1.5K views
ドメイン適応の原理と応用
Yoshitaka Ushiku
•
4.8K views
Active Learning 入門
Shuyo Nakatani
•
51K views
動画認識サーベイv1(メタサーベイ )
cvpaper. challenge
•
2.7K views
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
•
113.6K views
backbone としての timm 入門
Takuji Tahara
•
6K views
物体検知(Meta Study Group 発表資料)
cvpaper. challenge
•
101.1K views
[DL輪読会]GQNと関連研究,世界モデルとの関係について
Deep Learning JP
•
8.6K views
ディープラーニングのフレームワークと特許戦争
Yosuke Shinya
•
18.9K views
Similar to TensorFlow Liteを使った組み込みディープラーニング開発
(20)
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
Taira Hajime
•
1.4K views
TOPPERS as an IoT OS(kernel)
Kiyoshi Ogawa
•
907 views
ゼロから始める自作 CPU 入門
Hirotaka Kawata
•
41.9K views
TFLite_and_PyTorch_Mobile
yusuke shibui
•
403 views
Singularityで分散深層学習
Hitoshi Sato
•
9.2K views
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
•
2.4K views
[PyConJP2019]Pythonで切り開く新しい農業
Makoto Koike
•
9.7K views
160531 IoT LT #15 @ 日本IBM
Toshiki Tsuboi
•
2.7K views
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Naoki Matsumoto
•
305 views
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
•
187 views
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
•
1K views
Slides AXIS WS2
Shigeru Kobayashi
•
706 views
Runtime c++editing
Seiya Ishibashi
•
2.4K views
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
•
682 views
Security.gs fes 2010 in tokyo
Ren Sakamoto
•
440 views
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
•
1.2K views
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
•
1.4K views
20110819 関西 kinect勉強会 初級編
誠 山崎
•
788 views
hbstudy#6LTyuzorock
yuzorock
•
665 views
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
•
812 views
Advertisement
Recently uploaded
(20)
AI予約サービスのMLOps事例紹介
Takashi Suzuki
•
4 views
☀️《Curtin毕业证仿真》
hjhgg1
•
2 views
★可查可存档〖制作卡尔顿大学文凭证书毕业证〗
mmmm282537
•
2 views
★可查可存档〖制作密德萨斯大学文凭证书毕业证〗
vgfg1
•
2 views
☀️《UMKC毕业证仿真》
DFFFFG
•
2 views
★可查可存档〖制作思克莱德大学文凭证书毕业证〗
vgfg1
•
3 views
12曼尼托巴大学.pdf
dsadasd17
•
2 views
英国:肯特大学毕业证办理流程
syceq
•
2 views
APM.pptx
SatishKotwal
•
2 views
★可查可存档〖制作温尼伯大学文凭证书毕业证〗
mmmm282537
•
3 views
★可查可存档〖制作魁北克大学文凭证书毕业证〗
mmmm282537
•
2 views
☀️《UIUC毕业证仿真》
hjhgg
•
2 views
143-南卫理公会大学.pdf
dsadasd17
•
3 views
☀️《UMB毕业证仿真》
hjhgg
•
2 views
☀️《Bournemouth毕业证仿真》
fggg13
•
2 views
★可查可存档〖制作菲莎河谷大学文凭证书毕业证〗
mmmm282537
•
2 views
ChatGPTをもっと使いたい.pptx
TokioMiyaoka
•
338 views
美国:伦斯勒理工学院毕业证办理流程
amdfot
•
2 views
信赖的留信网服务,帮您获取正规毕业证成绩单加q威信634068167做卡普顿大学毕业证外壳#成绩单#信封#加拿大文凭#学生卡#雅思托福#留信留才#offer
AlifAle
•
3 views
72亚历山大学院.pdf
fdhrtf
•
2 views
TensorFlow Liteを使った組み込みディープラーニング開発
TensorFlow Lite #2020/02/29 Pycon
mini Shizuoka 「あなたの知らないPython」
● ● ○ ○ ● ○ 2
● ○ ● ● 3
● AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! AIはいってる! 脳はいってる! AIはいってる! AIはいってる! AIはいってる! 4
● 5
● 計算資源 ● ストレージ ●
サービス ● etc... ● 計算資源 ● ストレージ ● サービス ● etc... ネットワーク (インターネット) ネットワーク (インターネット) 端末 端末 6
● ○ ○ ● ○ ○ ● ○ ○ 7
● モデル出力 (特徴量) ● 端末さえあれば使える ● モデルの運用やアップデートが難しい ●
モデルが盗まれそう ● ネットワークがないと使えない ● モデルの運用やアップデートは可能 ● モデルも盗まれにくい? 8
インストール方法: $ pip install
tensorflow 最新バージョンはv2.1.0. とりあえず直ぐに試してみたい人は,Google Colabをおス スメします! -> “Google Colab”で検索してGO! 9
● ● ● 10
● ● ● ● ● ● ● 11
TFLite モデル変換以後は実行環境により異なる 12
● ● ○ ○ ○ ○ 13
● from tensorflow.lite import
TFLiteConverter #SavedModelからの変換 converter = TFLiteConverter.from_saved_model(model_dir) tflite_model = converter.convert() #KerasModelからの変換 converter = TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() 14
● ○ ○ ○ ○ ● ○ ○ ○ ○ ● ○ ○ 15
詳しくは →https://www.tensorflow.org/lite/performance/post_training_quantization from tensorflow.lite import
TFLiteConverter, Optimize #KerasModelからの変換 + Weight Quantization converter = TFLiteConverter.from_keras_model(model) converter.optimizations = [Optimize.OPTIMIZE_FOR_SIZE] #これ tflite_model = converter.convert() 16
量子化なし Weight Quantization Full Integer Quantization mobilenet
Size[MB] 17.0 4.1 4.5 Speed[ms] 285.7 555.5 263.2 mnist ※Dense2層 ※極小NN Size[MB] 0.4 0.1 0.1 Speed[ms] 0.83 0.12 0.14 モデル量子化によるモデルサイズと平均推論速度 17
量子化なし Weight Quantization Full Integer Quantization mobilenet
Size[MB] 17.0 4.1 4.5 Speed[ms] 285.7 555.5 263.2 mnist Size[MB] 0.4 0.1 0.1 Speed[ms] 0.83 0.12 0.14 モデル量子化によるモデルサイズと平均推論速度 ● モデルサイズ縮小に効果大 ● 推論速度はよくわからない ○ 実行環境のRAM容量による? ○ モデルのアーキテクチャによる? ● 【補足】Accuracyの低下はほぼ無かった 18
● TensorFlowには,枝切り用のパッケージがあり簡単に試すことが出来る. (Tensorflowとは別途インストールが必要 → https://www.tensorflow.org/model_optimization) 学習時に枝切り対象レイヤーとスケジュールを設定して行なう.学習済みモデル単体 での変換はできない. (現状は)重みを0に置き換えるだけなので,モデルサイズ&推論速度は変わらない. モデルを圧縮した時のサイズが小さく出来る. 19
import tensorflow_model_optimization as
tfmot params = { ‘pruning_schedule’: #ここでpruning_scheduleを定義 ...(略) } model = Sequential([ #モデル定義 ...(略)]) model = tfmot.sparsity.keras.prune_low_magnitude(model, **param) model.compile(..略..) callbacks = [ #コールバックに下記を追加 tfmot.sparsity.keras.UpdatePruningStep() ] model.fit(...(略), callbacks=callbacks) 詳しくは→https://www.tensorflow.org/model_optimization 20
枝切り なし 枝切り 50% 枝切り 80% キュウリ CNN File Size[MB] * (圧縮率) 0.84 (100%) 0.64 (76.2%) 0.35 (41.2%) Accuracy[%] 82.2
82.0 76.6 Speed[ms] 41.7 40.0 48.7 枝切りによる圧縮ファイルサイズ,正答率,平均推論速度 *: weight quantization + zip圧縮したサイズ 通常のtfliteファイルサ イズは4.8MB 21
Device TFLite Runtime ● ● Mobilenet 学習済みモデル (Model Zoo) SSD-Mobilenet Posenet ︙ オリジナルモデル TFLiteConverter
model.tflite Quantization 枝切り 蒸留 モデル構造の最適化 22
● ● ○ ● https://tinymlbook.com/ 23
24
SoC : STM32H743VI (CPU
ARM Cortex M7 32bit 480MHz) (RAM 1MB , FlashROM 2MB) カメラ:OV7725 (max 640x480) SDカード:μSDスロットあり30GBまで 消費電力:110mA〜170mA@3.3V 特徴: オープンソースのファームウェア上でMicroPythonが動 く.pythonヒープ領域が230KBぐらいしか使えない・・・ SoC : Kendryte K210 (CPU RISC-V 64bit 400-800MHz) (RAM 8MB, FlashROM 16MB) (KPU : CNNアクセラレータ) カメラ:OV2640/OV7740 SDカード:μSDスロットあり 消費電力:>600mA@5V? 特徴: コスパかなり良い.RISC-Vだからか? 畳み込みや活性化関数などのアルゴリズムがハード実装 されている.ただ,いろいろ制約あり. https://openmv.io/collections/cams/products/openmv- cam-h7 https://wiki.sipeed.com/en/maix/board/bit.html 25 一般的にカメラにはイメージセンサ制御のための マイコンが搭載されています. 今回は,そのマイコンの上でディープ・ラーニング の推論も動かしてしまおうという試みです.
● ○ https://github.com/openmv/openmv/releases ● ○ https://openmv.io/pages/download USBでプログラム書き込み 26
● ○ ○ 😨 ○ ○ ● ○ https://www.st.com/ja/embedded-software/x-cube-ai.html ○ ○ ○ 27
● ○ https://github.com/workpil es/CUCUMBER-9 ● ● テストデータに対し て82.8%の正答率 28
● ○ https://github.com/workpil es/CUCUMBER-9 ● ● テストデータに対し て82.8%の正答率 ● ● ● 29
● 30
● 31
● ○ ■ src/stm32cubeai/nn_st.c ○ ■ src/omv/boards/OPENMV4/omv_boardconfig.h ■
237K -> 230K ○ ■ 静的ライブラリ「libtf_person_detect_model_data.a」の参照箇所を削る 32
● ○ ■ src/stm32cubeai/nn_st.c ○ ■ src/omv/boards/OPENMV4/omv_boardconfig.h ■
237K -> 230K ○ ■ 静的ライブラリ「libtf_person_detect_model_data.a」の参照箇所を削る ○ ■ おそらくファームウェアで使ってる STマイコンのライブラリが古い? ■ じゃあ,Weight量子化を・・・なぜかツールで Float32へ戻される ■ じゃあ,Float16量子化を・・・なぜかツールで Float32へ戻される ■ 結局,量子化なしで<200KBのモデルを作る羽目に・・・ 33
● テストデータに対し て72.5%の正答率 34
35
● import nn_st net =
nn_st.loadnnst(‘network’) out = net.predict(img) 36
● ● 37
● ○ ○ https://github.com/sipeed/MaixPy ○ https://maixpy.sipeed.com/en/ ● ○
http://dl.sipeed.com/MAIX/MaixPy/ide/v0.2.4 ○ 38
FlashROMに書き込む場合 SDカードから読み込む場合 39
● ○ https://github.com/sipeed/Maix_Toolbox ● ○ ○ https://github.com/kendryte/nncase 40
● ○ ○ ● ○ ○ ■ https://github.com/kendryte/nncase/blob/master/docs/tflite_ops.md ■ (v0.1.0-rc5)https://github.com/kendryte/nncase/tree/v0.1.0-rc5 Maix_Toolbox(nncase
v0.1.0-rc5)の場合 [Maix Toolbox使用] nncase v0.1.0-rc5 nncase v0.2.0 Beta2 量子化なし 8bit量子化 量子化なし 8bit量子化 [TF2.1] TFLiteConverter 量子化なしモデル ○:推論実行可能 ✕: MaixPyファームウェアv0.5.0では実行できない 41
Flattenの前後でdequantize,quantize が呼ばれている.無駄. DenseはPaddingとConv2dに置き換え られる.無駄. 42
● ○ ● ○ これ 43
● import KPU as
kpu task = kpu.load(0x200000) img = img.resize(INPUT_SIZE, INPUT_SIZE) img.pix_to_ai() fmap = kpu.forward(task, img) plist = fmap[:] pred = plist.index(max(plist)) 現時点でドキュメントには 載ってないがこれでリサ イズできる 現時点でドキュメントには 載ってないおまじない. (RBG565->RBG888に 変換してるぽい) 44
● ● 45
● ○ ○ ● ○ ● ○ ● ○ ○ 46
47
モデル出力 (特徴量) 48
● 試作1号機(2016年2月) 試作2号機(2016年8月) 試作3号機(2017年8月) 49
50
51
モデル Ver1.0 モデル Ver1.0 モデル Ver1.1 ネット環境がない場所で, モデルの管理が大変 モデル Ver1.0 LANなど JetsonNano TPU dev board 52
● ○ ● ○ ● ○ 53
● ● ○ ● 54
55
Advertisement