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
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
280
Tangible Code
chobishiba
3
560
知られているようで知られていない JavaScriptの仕様 4選
syumai
0
590
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
370
CSC509 Lecture 10
javiergs
PRO
0
170
The Missing Link in Angular's Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
120
チーム開発の “地ならし"
konifar
7
4.4k
AIを駆使して新しい技術を効率的に理解する方法
nogu66
1
620
FlutterKaigi 2025 システム裏側
yumnumm
0
1k
r2-image-worker
yusukebe
1
170
HTTPじゃ遅すぎる! SwitchBotを自作ハブで動かして学ぶBLE通信
occhi
0
250
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
360
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
The Cost Of JavaScript in 2023
addyosmani
55
9.2k
It's Worth the Effort
3n
187
28k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Scaling GitHub
holman
463
140k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
How STYLIGHT went responsive
nonsquared
100
5.9k
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