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
Deep Learningライブラリ 色々つかってみた感想まとめ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takanori Ogata
April 17, 2016
Technology
17k
18
Share
Deep Learningライブラリ 色々つかってみた感想まとめ
Takanori Ogata
April 17, 2016
More Decks by Takanori Ogata
See All by Takanori Ogata
ACCELStarsピッチ資料
conta
0
130
Convolutional Pose Machines
conta
0
1.4k
Other Decks in Technology
See All in Technology
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
340
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
140
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
310
推し活エージェント
yuntan_t
0
100
Cursor Subagentsはいいぞ
yug1224
2
130
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
150
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
ThetaOS - A Mythical Machine comes Alive
aslander
0
240
MCPで決済に楽にする
mu7889yoon
0
170
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
1
230
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Building AI with AI
inesmontani
PRO
1
840
Optimising Largest Contentful Paint
csswizardry
37
3.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
The SEO Collaboration Effect
kristinabergwall1
0
410
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Transcript
Deep LearningϥΠϒϥϦ ৭ʑ͔ͭͬͯΈͨײ·ͱΊ @conta_
Self Introduction ॹํɹول (twitter: @conta_) CTO@ABEJA, Inc. Computer Visionͱ͔ɺMachine LearningΛͬͨ
ϓϩμΫτ։ൃΛ͍ͬͯ·͢ɻ
Deep Learning Library?
None
ʊਓਓਓਓਓਓਓਓਓʊ ʼɹଟ͗ͯͭ͢Β͍ɹʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ
Dive into Deep Learning
ˎײ͡ํʹݸਓ͕ࠩ͋Γ·͢
ࠓճհ͢ΔϥΠϒϥϦ
Caffe Caffe: UC Berkleyͷਓ͕࡞ͬͯΔɻDeepLearningք۾Ͱ͔ͳΓฮͳϥΠϒϥϦͰɺ ޭେ͖͍ ݴޠ: ɾCoreC++ɻPython, MatlabͷWrapper͕͋Δ ಛ: ɾجຊతʹProtocol
BufferͰωοτϫʔΫΛهड़
▪͍͍ͱ͜Ζ(ݸਓతײ) ɾModel ZooʹֶशࡁΈϞσϧ͕ͨ͘͞Μެ։͞ΕͯΔ ʢطʹCVPR2016ͷจͷϞσϧެ։͞ΕͯΔʣ ɾݚڀऀׂ͕ͱͬͯΔͷͰ࠷৽ͷݚڀՌ͕CaffeͰ࣮͞ΕͯͨΓ͢Δ ɾMulti-GPUʹରԠͨ͠ͷͰɺઃఆ̍ͭͰෳͷGPUΛར༻Մೳ ɾ࣮ߦׂ͕Γͱૣ͍ ɾωοτϫʔΫͷύϑΥʔϚϯεςετ͕Ͱ͖Δ(caffe testίϚϯυ)
▪ͭΒ͍ͱ͜Ζ(ݸਓతײ) ɾΧελϚΠζ͕c++ͱProtocol BufferɻɻɻϚξͭΒ͌Ηɻɻɻʢˎ̍ʣ =>ਓ͕ΧελϚΠζͨ͠ͷɺΘ͔ΒΜɻ ɾωοτϫʔΫΛProtocol BufferͰॻ͘ͷ͕ͭΒ͍ʢˎ̎ʣ =>GoogLeNet2000ߦɺResNet7000ߦɻɻɻ ʢProtocol Buffer৬ਓܳʣ ɾσʔληοτΛ࡞͢Δͷ͕େม
ɾΤϥʔ͕Θ͔Γʹ͍͘ ɾιʔείʔυΛಡΊͳ͍ͱશػೳ͑ͳ͍ɺಈ͖͕Θ͔Βͳ͍ ʢυΩϡϝϯτߋ৽͠Ζʂʣ ɾΠϯετʔϧ͕ͭΒ͍ ʢੲʹൺΔͱґଘؔͷOnOffͷΦϓγϣϯ͕͍ͨͨΊɺ ͍ͩͿϚγʣ ɾRNNΛѻ͏͜ͱͰ͖ͳ͍ʢຐվ͞ΕͨCaffeϕʔεͷͷ͋Δ͚Ͳɻɻɻʣ
▪༨ஊʢˎ̍ʣ ɾ࠷ۙPython Layer͕Ճ͞ΕͯPython͚ͩͰΧελϚΠζ Ͱ͖ΔΑ͏ʹຐվ͍ͯ͠Δ(No Documentation)
▪༨ஊʢˎ̎ʣ ɾPythonͰProtocol BufferΛੜ Ͱ͖ΔΑ͏ʹͳͬͨͨΊɺ ϧʔϓͨ͠هड़ׂ͕ͱ؆୯ʹͳͬͨ (No Documentation)
▪͜Μͳͻͱʹ͓͢͢Ί ɾ·ͣԿ͔ಈ͔͍ͨ͠ਓ ɾͱΓ͋͑ͣݚڀՌΛࢼ͍ͨ͠ਓ ɾ͕ඞཁͳਓ ɾC++ͱProtocol BufferΛษڧ͍ͨ͠ਓ ɾࠜؾڧ͘Կ͔ͱઓ͍͍ͨਓ
Tensorflow: G̋̋gleͷࢄߦྻܭࢉϥΠϒϥϦɻ ผʹDeep͚ͩ͡Όͳ͍Μ͔ͩΒͶʂ ݴޠ: ɾCoreC++ɻPythonͱC++ͲͪΒͰಈ͘ɻ ಛ: ɾࢄॲཧ͕؆୯ʹͰ͖Δ ɾGoogleͷϓϩμΫτͰԿར༻͞Ε͍ͯͯɺ҆ఆײ͕͋Δ
▪͍͍ͱ͜Ζ(ݸਓతײ) ɾࢄॲཧ͕ΊͬͪΌ؆୯ʹͰ͖Δ(Distributed Tensorflow) ɾGoogle͕MLϓϥοτϑΥʔϜΛఏڙ։࢝ ɾ࠷ۙɺTensorflow͍·ͨ͠จ͕Α͘Ͱ͖͍ͯͯΔ ɾίΞ͕C++ͳͷͰAndroidͰಈ࡞͢Δ ɾDocker Container͕མͪͯΔͷͰɺDocker͑ΔͳΒ ΠϯετʔϧʹࠔΒͳ͍ ɾTensorboard͕ΦγϟϨ
▪ͭΒ͍ͱ͜Ζ(ݸਓతײ) ɾݰਓ͚ϥΠϒϥϦ =>Έ͕ͪΐͬͱෳࡶͳͷͰཧղ͠ͳ͍ͱ͍͜ͳͤͳ͍ =>ωοτϫʔΫΛॻ͘ͷʹҰ͔Βهड़͢Δඞཁ͕͋ΔɺTheanoతͳཱͪҐஔ ɾιʔείʔυ͕େنͳͨΊվ͕େมͦ͏ ʢҰԠυΩϡϝϯτ͋Δ͚Ͳʣ ɾDistributed TensorflowΛݸਓͷࢿݯͰ׆༻͢ΔͷࠔͳͷͰɺGoogleͷϓϥοτ ϑΥʔϜΛΘͳ͍ͱԸܙΛड͚ʹ͍͘ =>ࢄίϯϐϡʔςΟϯάͷIOϘτϧωοΫɺInfiniBandΛ͍ͬͺ͍ങ͑Δ͓ۚ࣋ͪ
ͳΒԸܙΛड͚ΒΕΔ͔
▪͜Μͳͻͱʹ͓͢͢Ί ɾΈͷ෦͔ΒDeep LearningΛษڧ͍ͨ͠ਓ ɾDeep Learningɹதʙ্ڃऀ͚ͷਓ ɾେنػցֶशΛͬͯΈ͍ͨਓ ɾେنػցֶशج൫Λ࡞Γ͍ͨਓ ɾMobileʹΈࠐΈ͍ͨਓ
Chainer: PFNͷDeep LearningϥΠϒϥϦɻ ݴޠ: ɾPython(+Cuda) ಛ: ɾDefine-by-Runͱ͍͏ख๏Λͱ͍ͬͯͯɺωοτϫʔΫΛޙ͔Βղ ऍ ɾ͢Β͍͠
▪͍͍ͱ͜Ζ(ݸਓతײ) ɾωοτϫʔΫͷهड़ͷॊೈੑ͕ߴ͍ ʢಛʹRNNܥඇৗʹॻ͖͍͢ʣ ɾ෦ͷಈ࡞͕Ͳ͏ͳͬͯΔ͔ඇৗʹΘ͔Γ͍͢ ɾσόοΫ͍͢͠ ɾφ͍ΞϧΰϦζϜ͕͍ͪૣ࣮͘͞ΕͯΔ ɾCupyͱ͍͏Cuda͕؆୯ʹ͑ΔߦྻԋࢉϥΠϒϥϦؚ͕·Ε͍ͯ ͯɺࣗલͷΞϧΰϦζϜΛൺֱత؆୯ʹߴԽͰ͖Δ (C++Ͱॻ͍ͯϥούʔͱ͔ͭ͘Βͳ͍͍ͯ͘) ɾதͷਓ͕͍͢͝
▪ͭΒ͍ͱ͜Ζ(ݸਓతײ) ɾωοτϫʔΫҎ֎ͷهड़ྔ͕ଟ͘ͳͬͯ͠·͏ʢֶशͷίʔυͱ͔ʣ ɾ࣮ߦʢ࠷ۙͦͦ͜͜ૣ͍ͬΆ͍ʣ ɾDeep Learning͔ͬͯͳ͍ͱଟ͍͜ͳͤͳ͍
▪͜Μͳͻͱʹ͓͢͢Ί ɾDeep LearingΛҰ͔ΒΨοπϦษڧ͍ͨ͠ਓ ɾDeep Learningɹதʙ্ڃऀͷਓ ɾݚڀͰTry and ErrorΛ܁Γฦ͠ͳ͕ΒΞϧΰϦζϜΛ։ൃ͍ͨ͠ਓ ɾෳࡶͳωοτϫʔΫΛهड़͍ͨ͠ਓ ʢωοτϫʔΫͰ݅จॻ͖͍ͨɺσʔλʹΑͬͯॲཧΛ͚͍ͨʣ
ɾRNNͱ͔NLPͱ͔Λॻ͖͍ͨ
▪MXNet: DMLC(Distributed (Deep) Machine Learning Community)͕࡞ͬͯ ΔɻXGBoostͷ࡞ݩͱͯ͠༗໊ɻ ▪ݴޠ: ɾCoreC++ɻWrapper͕ͨ͘͞Μ͋ΓɺPythonɺC++ɺScalaɺ RɺMatlabɺJuliaͱଟݴޠରԠɻ
▪ಛ: ɾଟݴޠʂ ɾ͕͔ͳΓૣ͍ʢॴײʣ ɾmshadow(ߦྻԋࢉ)ɺps-lite(ࢄॲཧ)ͷϥΠϒϥϦ͕ϕʔε
▪͍͍ͱ͜Ζ(ݸਓతײ) ɾࢄॲཧ(1Node, Multi-GPUɺMulti-NodeɺMulti-GPUͲͪΒ ʣ͕ΊͬͪΌ؆୯ʹͰ͖Δ(Example͋Γ) ɾS3ϞσϧσʔλΛอଘ͢Δػೳ͕͋Δ ɾૣ͍ʢImageNet full datasetΛGeForce GTX 980*4Ͱ8.5)
ɾͳͥૣ͍͔͕υΩϡϝϯτͰྗઆ͞Ε͍ͯΔ ɾଟ࠷ଟݴޠ͕ਐΜͰ͍Δ ɾC++Ͱॻ͔ΕͯΔͷͰ Mobile(iOS, Android)Ͱಈ͘
▪ͭΒ͍ͱ͜Ζ(ݸਓతײ) ɾΤϥʔ͕Θ͔Γʹ͍͘ɺຊʹΘ͔Γʹ͍͘ ɾυΩϡϝϯτ͕গͳ͍ =>ಛघͳֶशσʔλΛ࡞ͬͨΓ͢Δͷେม =>͍͜͠ͱΛ͠Α͏ͱ͢ΔͱιʔεΛಡ·ͳ͚ΕͳΒͳ͍
▪͜Μͳͻͱʹ͓͢͢Ί ɾDeep Learningɹதʙ্ڃऀ͚ͷਓ ɾΛٻΊ͍ͯΔਓ ɾPythonɺC++Ҏ֎Ͱར༻͍ͨ͠ਓ
▪Keras: PythonͷDeep LearningϥΠϒϥϦɻ ࠷ۙv1.0͕ϦϦʔε͞Εͨɻ ▪ݴޠ: ɾPython ▪ಛ: ɾTorchʹࣅͨهड़ํ๏ɻ ɾߦྻԋࢉͷόοΫΤϯυTheanoͱTensorFlowΛར༻͍ͯͯ͠ɺ Γସ͑Δ͜ͱ͕Ͱ͖Δ
▪͍͍ͱ͜Ζ(ݸਓతײ) ɾωοτϫʔΫهड़͕؆୯ɺॊೈ ϕʔεͷAPI͕ͨ͘͞Μ४උ͞Ε͍ͯΔͨΊɺهड़ྔগͳ͘ࡁ Ήɻ؆୯ͳωοτϫʔΫͰ͋ΕAPIΈ߹ΘͤͰͳΜͱ͔ͳΔɻ v1.0.0͔Β functional APIͳΔͷ͕ग़དྷͯɺ ඇৗʹײతʹωοτϫʔΫΛهड़Ͱ͖ΔΑ͏ʹͳͬͨ ɾֶश͕؆୯ ScikitͷΑ͏ʹfit()ؔݺͼग़ͤΑΖͬͯ͘͘͠ΕΔ
ɾιʔε͕ಡΈ͍͢
▪ͭΒ͍ͱ͜Ζ(ݸਓతײ) ɾMulti-GPUඇରԠ TheanoΛBackendͱͯͬͯ͠ΔͱMulti-GPUͭΒ͍ɻ Tensorflowͷ͓͔͛ͰMulti-GPU͕؆୯ʹͰ͖ΔΑ͏ʹͳͬͨʁ ɾPython͔͠ରԠ͍ͯ͠ͳ͍
▪͜Μͳͻͱʹ͓͢͢Ί ɾDeep LearningΛΓ͍ͨਓશൠ ɾ͋·Γࡉ͔͍͜ͱؾʹͤͣʹαΫοͱωοτϫʔΫΛ࡞ Γ͍ͨਓ ˎݸਓతʹҰ൪͓͢͢Ί
·ͱΊ ▪Caffe ɾͱΓ͋͑ͣDeep LearingʢCNNʣΓ͍ͨਓ ɾݚڀՌΛࢼ͍ͨ͠ਓ ▪Tensorflow ɾࢄίϯϐϡʔςΟϯάΓ͍ͨਓ ▪Chainer ɾΞϧΰϦζϜ։ൃ͍ͨ͠ਓ ɾຊؾͰDeep
LearningΛษڧ͍ͨ͠ਓ ▪MXNet ɾ͕ඞཁͳਓ ɾMobileͰಈ͔͍ͨ͠ਓ ▪Keras ɾͱΓ͋͑ͣDeep Learingษڧ͍ͨ͠ਓ ɾΊΜͲ͍͘͞ͷͰ͋Δఔڥ͕४උ͞Ε͍ͯͯཉ͍͠ͱࢥ͏ਓ
We are hiring! → https://www.wantedly.com/companies/abeja