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
Takanori Ogata
April 17, 2016
Technology
18
17k
Deep Learningライブラリ 色々つかってみた感想まとめ
Takanori Ogata
April 17, 2016
Tweet
Share
More Decks by Takanori Ogata
See All by Takanori Ogata
ACCELStarsピッチ資料
conta
0
120
Convolutional Pose Machines
conta
0
1.3k
Other Decks in Technology
See All in Technology
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
1
150
ヘンリー会社紹介資料(エンジニア向け) / company deck for engineer
henryofficial
0
330
「REALITY」3Dアバターシステムの7年分の拡張の歴史について
gree_tech
PRO
0
130
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
130
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
940
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
140
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
410
Azureコストと向き合った、4年半のリアル / Four and a half years of dealing with Azure costs
aeonpeople
1
250
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
300
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
「魔法少女まどか☆マギカ Magia Exedra」のIPのキャラクターを描くための3Dルック開発
gree_tech
PRO
0
150
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
160
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Automating Front-end Workflow
addyosmani
1371
200k
Raft: Consensus for Rubyists
vanstee
140
7.2k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
Building an army of robots
kneath
305
46k
Agile that works and the tools we love
rasmusluckow
331
21k
Producing Creativity
orderedlist
PRO
347
40k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Gamification - CAS2011
davidbonilla
81
5.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
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