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
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
個人開発で徳島大学生60%以上の心を掴んだアプリ、そして手放した話
akidon0000
1
150
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
250
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
400
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
120
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
190
個人軟體時代
ethanhuang13
0
330
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
350
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Code Review Best Practice
trishagee
71
19k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Building Applications with DynamoDB
mza
96
6.6k
How to Ace a Technical Interview
jacobian
279
23k
Gamification - CAS2011
davidbonilla
81
5.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Bash Introduction
62gerente
615
210k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
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