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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kmt-t
September 04, 2019
Programming
1
19
組込エンジニアのための深層学習
kmt-t
September 04, 2019
Tweet
Share
More Decks by kmt-t
See All by kmt-t
Deep Learningと超解像
kmt_t
0
23
Design by Contractとホーア論理
kmt_t
0
42
GCPと機械学習
kmt_t
1
47
進化するART
kmt_t
0
25
Other Decks in Programming
See All in Programming
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.7k
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.3k
へんな働き方
yusukebe
6
2.8k
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
180
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
100
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
620
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
130
AI活用のコスパを最大化する方法
ochtum
0
320
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
520
PHPで TLSのプロトコルを実装してみる
higaki_program
0
430
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
200
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Invisible Side of Design
smashingmag
302
51k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
Done Done
chrislema
186
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Facilitating Awesome Meetings
lara
57
6.8k
GraphQLとの向き合い方2022年版
quramy
50
14k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
190
Accessibility Awareness
sabderemane
0
84
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