Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
組込エンジニアのための深層学習
Search
kmt-t
September 04, 2019
Programming
1
18
組込エンジニアのための深層学習
kmt-t
September 04, 2019
Tweet
Share
More Decks by kmt-t
See All by kmt-t
Deep Learningと超解像
kmt_t
0
22
Design by Contractとホーア論理
kmt_t
0
37
GCPと機械学習
kmt_t
1
47
進化するART
kmt_t
0
24
Other Decks in Programming
See All in Programming
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
370
Reactの歴史を振り返る
tutinoko
1
180
Comparing decimals in Swift Testing
417_72ki
0
170
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.2k
ゲームの物理
fadis
5
1.2k
tool ディレクティブを導入してみた感想
sgash708
1
130
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
540
Vibe coding コードレビュー
kinopeee
0
450
生成AI、実際どう? - ニーリーの場合
nealle
0
110
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
160
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
130
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
280
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Designing for Performance
lara
610
69k
A Tale of Four Properties
chriscoyier
160
23k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
How STYLIGHT went responsive
nonsquared
100
5.7k
Building an army of robots
kneath
306
45k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
Building Applications with DynamoDB
mza
96
6.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Transcript
ࠐΤϯδχΞͷͨΊͷਂֶश ൃදऀ kmt-t ࠐΤϯδχΞͷͨΊͷਂֶश 1
ࣗݾհ • ໊લ : kmt-t or kmt_t • ৬ۀ :
ࠐϓϩάϥϚ • ஶॻ : AndroidͷԾϚγϯ • ௗऔݝຽͰ͢ • ࠷ۙస৬͠·ͨ͠ ࠐΤϯδχΞͷͨΊͷਂֶश 2
ࣗݾհ • ઐ • ը૾ॲཧ (ओʹ࠷దԽ) • ίϯϐϡʔλάϥϑΟοΫε • ϑΝΠϧγεςϜ
• ԾϚγϯ ࠐΤϯδχΞͷͨΊͷਂֶश 3
ࠓͷׂ࣌ؒ • ಋೖ (5) • ਂֶशҰൠ (10) • ࠐਂֶश (20)
• JetsonTX1/TX2հ (10) • ͔ͳΓਐߦ͕͍ͷͰࢿྉࣄલ͠·͢ ࠐΤϯδχΞͷͨΊͷਂֶश 4
ಋೖ ࠐΤϯδχΞͷͨΊͷਂֶश 5
͜͏͍͏͜ͱͬͯ·͢ • σδλϧΧϝϥ͚ղ૾ • ίϯσδը૾ͷҰ؟ը૾ͷม • ࣄͰͳ͘झຯͰ͢ ࠐΤϯδχΞͷͨΊͷਂֶश 6
ैདྷख๏ (SRCNN) • waifu2xͷख๏ • ॖখͷٯϑΟϧλΛʮճؼʯ͢Δ • ྼԽલ૾ͱྼԽޙը૾ͷϖΞ • શ͘ಉҰඃࣸମͷը૾ϖΞ͕ඞཁ
• ը૾ϖΞ͕༻ҙͰ͖ΔΠϥετ͖ ࠐΤϯδχΞͷͨΊͷਂֶश 7
ఏҊख๏ • ߴղ૾ใΛʮੜʯ͢Δ • ը૾Λղ૾Ͱ֊Խ͢Δ • ϥϓϥγΞϯϐϥϛου • ղ૾ʙߴղ૾ͷը૾ϨΠϠ •
ಉ͡ඃࣸମͷը૾ϖΞ͕ෆཁ • ը૾ϖΞ͕༻ҙͰ͖ͳ͍σδλϧΧϝ ϥ͖ ࠐΤϯδχΞͷͨΊͷਂֶश 8
GANͷΈ • ϥϯμϜͳZ͔Βը૾ੜ • ੜ͞Εͨը૾͕ຊʹ͍͔ۙผ • ੜը૾͕ผෆՄʹͳΔΑ͏ֶश • Z͕ԿΛද੍͔͢ޚෆՄೳ ࠐΤϯδχΞͷͨΊͷਂֶश
9
Condi&onal GANͷΈ • ҙຯͷ͋ΔYΛ༩͑ͯը૾ੜ • ʮੜ͞Εͨը૾ͱYͷΈ߹Θͤʯ ͕ຊʹ͍͔ۙผ • ੜը૾͕ผෆՄʹͳΔΑ͏ֶश •
Y͕ԿΛද੍͔͢ޚՄೳ • ͜Ε͍ͬͯ·͢ ࠐΤϯδχΞͷͨΊͷਂֶश 10
ࠓͷൃදͷత • ΈΜͳձࣾͰਂֶश͏Μ͕ͪ͘Ͱ͖Δͷ͕ඪ ࠐΤϯδχΞͷͨΊͷਂֶश 11
࣭ • ਂֶशͷجຊతͳΈΛͬͯΔਓʂ ࠐΤϯδχΞͷͨΊͷਂֶश 12
ͿͬͪΌ͚ • ۀͰΔఔͷਂֶश͘͠ͳ͍ • ੈؒҰൠͷߴͳֶ͕ඞཁͱ͍͏ᷚӕ • ߴߍཧܥίʔεఔʴภඍͰे • ౷ܭֶ͕ඞཁͳͷԠ༻ ࠐΤϯδχΞͷͨΊͷਂֶश
13
ࢀߟॻ -ʮθϩ͔Β࡞ΔDeep Learningʯ - ඇৗʹ؆୯Ͱ͢ - ͍ࣜ͠ग़͖ͯ·ͤΜ - ϑϨʔϜϫʔΫ͕͔͚Δ͙Β͍ͷࣝ ʹ͖ͭ·͢
- (͑ͬͦΜͳʹ؆୯ͳͷʁ) ࠐΤϯδχΞͷͨΊͷਂֶश 14
ਂֶशҰൠ ࠐΤϯδχΞͷͨΊͷਂֶश 15
ਂֶशͷجຊతͳϞσϧ • σʔλΛࣝผ͢ΔʮྨϞσϧʯ • ؔΛۙࣅ͢ΔʮճؼϞσϧʯ • σʔλΛ፻͢ΔʮੜϞσϧʯ • ΑΓΑ͍ߦಈΛબ͢ΔʮڧԽֶशʯ •
Γ͍ͨ͜ͱ͕͜ΕΒͷͲΕʹ֘͢Δͷ͔ʁ ࠐΤϯδχΞͷͨΊͷਂֶश 16
ϓϩάϥϚ͕Βͳ͍ͱ͍͚ͳ͍͜ͱ • ϓϩάϥϛϯά • ֶश • ਪ • ࠐ։ൃऀʹͱͬͯʮਪʯ͕ॏཁ ࠐΤϯδχΞͷͨΊͷਂֶश
17
ਂֶशͷਪͷΈ • ؆୯ʹઆ໌͠·͢ ࠐΤϯδχΞͷͨΊͷਂֶश 18
શ݁߹ωοτϫʔΫ • ͍͔ͭ͘ͷϊʔυΛ࣋ͭෳͷ • ྡΓ߹͏ͷͯ͢ͷϊʔυΛଓ • ଓॏΈΛ࣋ͪɺग़ྗΛௐ͢Δ • ग़ྗ͕ҙຯͷ͋Δ݁ՌΛग़ྗ͢Δ •
ҙຯ͕͋Δ݁ՌΛग़ྗ͢ΔΑ͏ʹॏΈ Λֶश͢Δ ࠐΤϯδχΞͷͨΊͷਂֶश 19
ίϯϘϦϡʔγϣϯ • ෳνϟϯωϧը૾Ͱߏ • ྡΓ߹͏ͷνϟϯωϧΛଓ • ଓN✕NϐΫηϧͷը૾ϑΟϧλ • N✕NͷϑΟϧλͷΛֶश͢Δ ࠐΤϯδχΞͷͨΊͷਂֶश
20
ਂֶशͷֶशͷΈ • ΞϧΰϦζϜͦΕ΄ͲෳࡶͰͳ͍ • ʮภඍʯͱʮ࿈ʯ͕Ωʔϫʔυ • ࠐΤϯδχΞʹॏཁͰͳ͍ ࠐΤϯδχΞͷͨΊͷਂֶश 21
ͨΒͱߦྻ͕ग़ͯ͘Δཧ༝ • ͷଓߦྻͰදݱ͢Δ΄͏͕ѻ͍͍͢ • ϊʔυྻ͕ϕΫτϧɺॏΈ͕ߦྻ • ίϯϘϦϡʔγϣϯߦྻܭࢉͰՄೳ • ߦྻͩͱBLAS͕͑ΔͷͰ͍ ࠐΤϯδχΞͷͨΊͷਂֶश
22
ܭࢉྫ • ͕ೖྗͷ ൪ͷϊʔυग़ྗ • ͕தؒͷ ൪ͷϊʔυग़ྗ • ͕ೖྗͷ ൪ϊʔυͱதؒ
൪ Λଓ͢ΔΤοδͷॏΈ • தؒͱग़ྗͷܭࢉಉ༷ ࠐΤϯδχΞͷͨΊͷਂֶश 23
࣭ • ͜͜·Ͱͷ༰͍͠Ͱ͔͢ʁ ࠐΤϯδχΞͷͨΊͷਂֶश 24
ࠐਂֶश ࠐΤϯδχΞͷͨΊͷਂֶश 25
ڥߏங • ֶशPC (Tensorflow͔Caffe͋ͨΓ) • ਪࠐ ࠐΤϯδχΞͷͨΊͷਂֶश 26
ֶश༻PCڥ • CPU • CPUAMD RYZENγϦʔζڧྗʹਪ • ίΞ͕ଟ͍ͷ͕ਖ਼ٛ • ΄ͱΜͲͷϑϨʔϜϫʔΫ͕ฒྻԽରԠ
• ϝϞϦ ࠐΤϯδχΞͷͨΊͷਂֶश 27
ֶश༻PCڥ • GPU • GeForce͕ίεύ͕ྑ͍ • ࣌ؒಈ͔͢ͷͰϋΠΤϯυඇਪ • ϝϞϦ͕Γͳ͍ͱಈ͔ͳ͍͜ͱ͋Γ •
ྫྷ٫ʹؾΛ͚ͭΔ ࠐΤϯδχΞͷͨΊͷਂֶश 28
ֶशڥπϘ • λΠϜΠζϚωʔ • ύϥϝʔλͷௐΧοτΞϯυτϥΠ • ૿ͯ͠ผʑʹಈ͔͢ͷ͕Α͍ • ΫϥελͳͲڊେͳܭࢉࢿݯͰܭࢉͨ݁͠ՌͲ͏ͤʹ ࣮Ͱ͖ͳ͍
• ΑͬͯPC͍҆΄͏͕Α͍ ࠐΤϯδχΞͷͨΊͷਂֶश 29
ਪ • Android/LinuxͩͱTensorflow͔ΒϞσϧͷҠߦ͕Ͱ͖Δ • Tensorflow Lite • TensorRT • ͦ͏Ͱͳ͍ࠐΤϯδχΞ͕͕ΜΔ
• ਂֶशͱϑϨʔϜϫʔΫͷ͕ࣝඞཁ • ͰܭࢉՄೳͳܭࢉྔ͔Θ͔Δ͔Ͳ͏͔ ࠐΤϯδχΞͷͨΊͷਂֶश 30
࠷దԽ͕ࠐΤϯδχΞͷ໋ • ͬͯΈ͚ͨͲ͍ͷͰఘΊΔɺ͡Ό͋ବ • ΈΜͳΤϯδχΞͩ͠… • ࣗͰਪϓϩάϥϜΛॻ͘έʔεΘΓͱ͋Δ ࠐΤϯδχΞͷͨΊͷਂֶश 31
FP16ศར • ුಈখ/ූ߸1bit/ࢦ5bit/Ծ10bit • Ұ෦GPU͕HWαϙʔτ • ARM/x86ʹFP16<=>FP32ͷม໋ྩ͕͋Δ • FP32ͩͱͰ͔ա͗ΔͷͰը૾ͷුಈখදݱʹ࠷ద •
গ͠ͷΦʔόʔϔουͰϝϞϦ༻ྔ ࠐΤϯδχΞͷͨΊͷਂֶश 32
ྔࢠԽ • ྔࢠԽͱ͍͏ख๏ • ྔࢠԽͰσʔλαΠζΛখ͘͢͞Δ • GoogleͷTPUͰ࠾༻ ࠐΤϯδχΞͷͨΊͷਂֶश 33
INT8ྔࢠԽ • ߦྻͷཁૉΛ8bitͰදݱ͢Δ • ߦྻͷཁૉͷ࠷େͱ࠷খ • ࠷େͱ࠷খͷؒΛ8bitͰදݱ ࠐΤϯδχΞͷͨΊͷਂֶश 34
INT8ྔࢠԽ • ߦྻʹεΧϥΛՃࢉ͢Δ߹ • ࠷খ/࠷େʹεΧϥΛ͢ • ߦྻͷཁૉͷԋࢉ͕ෆཁ • ߦྻͱεΧϥͷࢉͷΑ͏ͳϥϯΫͷҧ͏ྻಉ࢜ͷԋࢉΛϒ ϩʔυΩϟετͱݺͿ
ࠐΤϯδχΞͷͨΊͷਂֶश 35
ྔࢠԽͷϝϦοτ • ΞΫηϥϨʔλͷফඅిྗ͕Լ͕Δ • ϝϞϦଳҬ͕FP32ͷ1/4ɺFP16ͷ1/2 • ϒϩʔυΩϟετ͕ߴ (ͳ͕࣌͋Δ) ࠐΤϯδχΞͷͨΊͷਂֶश 36
ίϯϘϦϡʔγϣϯͷ࠷దԽ • im2col • Winograd ࠐΤϯδχΞͷͨΊͷਂֶश 37
im2col • ίϯϘϦϡʔγϣϯͰσʔλͷฒͼ ͕ॏཁ 1. ը૾Λ1࣍ݩྻ (ߦํ) ʹల։͢ Δ 2.
ϐΫηϧ͝ͱʹϑΟϧλରͷϐΫ ηϧΛྻํʹల։͢Δ • ίϯϘϦϡʔγϣϯ͕ϕΫτϧͱߦྻ ͱͷੵʹͳΔ ࠐΤϯδχΞͷͨΊͷਂֶश 38
Winograd • ίϯϘϦϡʔγϣϯͷࣜΛมܗ͢Δͱࢉ͕ݮগ͢Δ • ࣗಈͰܭࢉ͢Δπʔϧ͕͋Δ • h#ps:/ /github.com/andravin/wincnn ࠐΤϯδχΞͷͨΊͷਂֶश 39
͜ΕΒҎ֎ʹ࠷దԽͷख๏ • طͷ࠷దԽͬͱͨ͘͞Μ͋Δ • ͨ͘͞Μ͋ΔͷͰΈΜͳͰߟ͑·͠ΐ͏ ࠐΤϯδχΞͷͨΊͷਂֶश 40
JetsonTX1/TX2հ ࠐΤϯδχΞͷͨΊͷਂֶश 41
࠷৽ͷධՁϘʔυ • Jetson Xavier • h/ps:/ /developer.nvidia.com/jetson- xavier • Ϟδϡʔϧܗঢ়͕มΘͬͨͷͰϚβʔ
Ϙʔυ͕TX1/2ͱޓ͡Όͳ͍ʁ • ࠓճچܕͷTX1/TX2ͷ ࠐΤϯδχΞͷͨΊͷਂֶश 42
JetsonTX1/TX2ͷೖखํ๏ • ๏ਓͷ߹ • ϚΫχΧ͋ͨΓ͔Βങ͍ͬͯͩ͘͞ • ݸਓͷ߹ • Amazon.com •
eBay • ຊͰങ͏ͱߴ͍ ࠐΤϯδχΞͷͨΊͷਂֶश 43
JetsonTX1 SE • ΩϟϯϖʔϯͰ25900ԁʂ • ී௨ʹങ͏ͱ80000ԁ͙Β͍ • TX1ͱTX2ͦΜͳʹੑೳมΘΒͳ͍ • h+ps:/
/ryoyo-direct.ryoyo-ss.jp/ register/jetson-se ࠐΤϯδχΞͷͨΊͷਂֶश 44
Jetson TX1/TX2ͷΑ͍ͱ͜Ζ • FP16ͷαϙʔτ • Jetsonͩͱഒԋࢉ • (GeForceഒʹͳΒͳ͍) ࠐΤϯδχΞͷͨΊͷਂֶश 45
Jetson TX1/TX2ͷΑ͍ͱ͜Ζ • TensorRT͕͑Δ • (GeForce͑ͳ͍) • ܾఆతʹωοτϫʔΫΛ࠷దԽ͢Δ • Tensorflow͔ΒσʔλͷΠϯϙʔτՄೳ
ࠐΤϯδχΞͷͨΊͷਂֶश 46
TensorRTͷϕϯνϚʔΫ • h#p:/ /proc-cpuinfo.fixstars.com/2018/04/tensorrt-03/ ࠐΤϯδχΞͷͨΊͷਂֶश 47
Jetson TX1/TX2ͷѱ͍ͱ͜Ζ • ඪ४ͷσΟετϦϏϡʔγϣϯ (L4T) ͕ڊେ • Linux͔ͭGUIࡌ͍ͬͯΔ • ϝϞϦ͕ͨ͘͞Μࡌ͍ͬͯΔ
• ͜ΜͳͷΈࠐΈͰ͍ͨ͘ͳ͍… ͔ͳΓؾ͕࣋ͪҤ͑Δ • ͷݕࠪஔͱ͔ʹ࠷ద͔ ࠐΤϯδχΞͷͨΊͷਂֶश 48
ݸਓతʹࢥ͏ͱ͜Ζ • ͬͱখ͍͞ྖҬʹΈࠐΈΤϯδχΞ͚ͷਂֶशͷԠ༻ ͕ଘࡏ͢Δ • த͕Θ͔͍ͬͯΕେنͳSoCͷੈք͔ΒΕΒΕΔ • NVIDIA͞Μ͕ߟ͑ͯͳ͍ྖҬʹ੨͍ւ͕͋Δ ࠐΤϯδχΞͷͨΊͷਂֶश 49
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ Կ͔࣭ʁ ࠐΤϯδχΞͷͨΊͷਂֶश 50