Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AxonOnnxとLiveViewで作る AI・MLシステム
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuisho Takafuji
June 28, 2022
Programming
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AxonOnnxとLiveViewで作る AI・MLシステム
LiveViewJP #7発表資料
デモ動画はこちら
https://github.com/thehaigo/live_onnx#demo
Yuisho Takafuji
June 28, 2022
More Decks by Yuisho Takafuji
See All by Yuisho Takafuji
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1.2k
Elixirでスマホ開発の現在
thehaigo
0
67
サクッと画像分類アプリを作ってみる
thehaigo
0
340
ElixirMobile#2 ElixirDesktopの前説
thehaigo
0
220
ElixirDesktop is Production Ready?
thehaigo
0
190
スマホで動く「GPS地図アプリ」はElixirDesktopで割とサックリ作れる
thehaigo
0
170
Phoenix 1.7とElixirDesktopでスマホアプリを作る セットアップ編
thehaigo
0
280
ElixirConf繋がりでLiveViewNativeやってみた
thehaigo
0
340
ElixirDesktop R&D 苦労話
thehaigo
1
150
Other Decks in Programming
See All in Programming
SREの越境 / SRE Collaboration
y0hgi
2
250
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
200
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
190
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
360
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
290
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
260
The Rails Doctrine Decade
koic
2
160
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
220
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
120
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Limits of Empathy - UXLibs8
cassininazir
1
680
WENDY [Excerpt]
tessaabrams
14
39k
A Soul's Torment
seathinner
8
3.6k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
240
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Skip the Path - Find Your Career Trail
mkilby
1
230
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
Transcript
UIF@IBJHP "YPO0OOYͱ-JWF7JFXͰ࡞Δ "*ɾ.-γεςϜ &MJYJSͰ݁͢ΔເͷγεςϜ
➤ Name: ོ౻།ষʢλΧϑδ ϢΠγϣʣ ➤ Twitter: @the_haigo ➤ Github: thehaigo
➤ Job: ϑϦʔϥϯεΤϯδχΞ / ૐཿ ➤ Skill: Elixir, Phoenix, React, ReactNative ➤ ࠷ۙ࡞ͬͨͷ ➤ LiveView + AxonͰը૾ྨ ➤ LiveView + Tailwind + DaisyUIͰΑ͛͞ͳUI About me
"*ɾ.-ษڧதͰɺ ࣮ۀͱࣝͷണ͕͋Δ͔ ͠Ε·ͤΜͷͰྃ͝ঝ͍ͩ͘͞
&MJYJSͷ"*ɾ.-͕͍ʂ ͍ͭݴͬͯΔؾ͕͠·͕͢ɾɾɾ
·ͣͪ͜ΒΛ͝ཡ͍ͩ͘͞
%&.0
ͪ͜Β1ZUIPO༻͍ͯ͠·ͤΜ &MJYJSͷΈͰ࡞ΒΕ͍ͯ·͢ʂ
ͪͳΈʹͪ͜ΒͷσϞಈըɺ+PTÉ͞Μʹ &MJYJS$POG&6ͷ,FZOPUFͰ͍͖ͬͯͨͩ·ͨ͠ʂ
͍ͷΘ͔͚ͬͨͲ "*ɾ.-ͬͯଞʹͲΜͳͷ͕͋Δͷʁ
ը૾ॲཧ w ը૾ྨɿը૾͕Կͷը૾Ͱ͋Δ͔Λࣝผ͢Δ w ମݕग़ɿը૾ͷରͷॴΛݕग़͢Δ w ҟৗݕɿը૾ͷத͔ΒҟͳΔঢ়ଶΛݕग़͢Δ w ը૾ੜɿ৽͍͠ը૾Λੜ͢Δ w
࢟ਪఆɿը૾ͷਓؒಈͳͲͷ࢟Λਪఆ͢Δ
ࣗવݴޠॲཧ w ςΩετྨɿϨϏϡʔͷωΨϙδఆɺTQBNఆ w ࣭ٙԠɿ*#.ϫτιϯɺΤΩεύʔτγεςϜ w ςΩετੜɿϒϩάهࣄ࡞ɺίʔυੜɺμΠδΣετهࣄ࡞ w ཁ w
ػց༁ w ߍӾ
ͦͷଞ৭ʑ w 4-". ࣗݾҐஔਪఆ ɿϧϯό w ղੳɿ౷ܭॲཧɺגՁ༧ଌ w ԻೝࣝɿΞϨΫαɺ4JSJɺ0,(PPHMF w
Ի߹ɾมɿϘΠνΣϯ w ڧԽֶशɿকعɺғޟɺήʔϜ
ࠓճը૾ྨΛྫʹ͍ͯ͠·͢
͜ͷΑ͏ͳγεςϜΛ࣮ݱ͢ΔͨΊʹͳʹ͕͍Δʁ w ػցֶशϑϨʔϜϫʔΫ w 1Z5PSDI 5FOTPS'MPX ,FSBT 4DJLJU-FBSO͕༗໊ w &MJYJSͩͱ"YPO
4DIPMFS͕֘͠·͢ w ϞσϧɾωοτϫʔΫ w 47. 7(( 3FT/FU :0-0 #&35 (51 w େྔͷֶशσʔλ ϞσϧɾωοτϫʔΫͰͷֶश w ্هͷΘΓʹֶशࡁΈϞσϧɾωοτϫʔΫ
େྔͷσʔλूΊΔͷͱϞσϧͷֶशେม͡Όͳ͍ʁ ࠷৽ͷ(16ΛOݸܨ͛ͯOͱ͔ฉ͍ͨ͜ͱ͋Δ͚Ͳɾɾɾɾ
ֶशࡁΈϞσϧΛ͏͜ͱͰɺֶशաఔΛඈͯͬͨ͠Γ νϡʔχϯάΛߦֶ͍शΛߦ͏ΑΓ࣌ؒͰλεΫʹ࠷ద Խ͢Δ͜ͱͰ͖·͢
Ͱ1ZUIPOͷϥΠϒϥϦ͚ͩͰ͠ΐʁ
&MJYJSͰͰ͖·͢ʂ
"YPO0OOY w "YPOʹPOOYܗࣜͷϞσϧσʔλΛಡΈࠐΉࣄ͕Ͱ͖Δ w 0//9 0QFO/FVSBM/FUXPSLF9DIBOHF w ֤ਂֶशϑϨʔϜϫʔΫؒͰ༻Ͱ͖Δڞ௨ϑΥʔϚοτ w
0//9.PEFM;PPʹֶशࡁΈϞσϧ͕ଟ༻ҙ͞Ε͍ͯΔ w IUUQTHJUIVCDPNPOOYNPEFMT w 1Z5PSDI,FSBT͔ΒֶशࡁΈϞσϧͷ&YQPSUͰ͖Δ
େྔͷσʔλΛूΊͯ ࣌ؒΛֶ͔͚ͯशΛ͠ͳͯ͘ ͏͜ͱ͕Ͱ͖ΔͷΘ͔ͬͨ
ͰγεςϜ࡞Δͷେม͡Όͳ͍ʁ
ઌఔͷγεςϜΛྫʹͯ͠Έ·͠ΐ͏
Έ ը૾Ξοϓϩʔυ 4UC*NBHFͰ 3(#"σʔλʹม ਂֶशͰ Կͷը૾͔ਪ ਪ݁ՌΛฦ͢ ݁ՌΛϑΥʔϚοτ ͑ͯදࣔ
ॳظԽॲཧ
ϞσϧಡΈࠐΈ
ϑΝΠϧΞοϓϩʔυͱσʔλม
ਪ
݁Ռදࣔ
͜Ε͚ͩͰ͢ʂ
ৄ͍࣮͠ ͪ͜ΒΛ͝ཡ͍ͩ͘͞
γεςϜߏங2JJUBهࣄ IUUQTRJJUBDPNUIF@IBJHPJUFNTGBFGECDF
Ϟσϧू(JUIVC IUUQTHJUIVCDPNUIFIBJHPMJWF@POOY
εέʔϧͤ͞Δ߹ (FO4FOWFSͰϓϩηεىಈͤͨ͞Γ ·ͨ#SPBEXBZΛ͏ͱ͍͏Ҋ͋Γ·͢ IUUQTNBSDFMPSFJDIFSUNFEJVNDPNPCKFDUEFUFDUJPOXJUIFMJYJSFFFEGFB
ྑͦ͞͏͡ΌΜ ͰػցֶशΘ͔Μͳ͍͚ͩͲɾɾɾ
ֶͼ·͠ΐ͏ʂ
Ͱग़͔ͨͬΓͰ ॻ੶هࣄશવͳ͍͡ΌΜ
ੈͷதʹେྔʹ͋Δػցֶशͷຊͷ ߏͲ͏ͳ͍ͬͯΔͱࢥ͍·͢ʁ
1ZUIPO +VQZUFS/PUFCPPL Ͱ͢ΑͶʁ
ͦΕΒΛ&MJYJS -JWF#PPLͰ ॻ͖͑·͠ΐ͏ʂ
͜ΜͳHJUIVCϦϙδτϦ࡞ͬͯ·͢ IUUQTHJUIVCDPNUIFIBJHPMJWFCPPL@TBNQMFT
ϥΠϒϥϦରԠද͚ͭͯ·͢
Ͱ͢Ͱʹ1ZUIPOͱ͔Ͱ͢Ͱʹ ͍ΖΜͳγεςϜ͕͋Δͷʹ Θ͟Θ͟&MJYJSͰΒͳͯ͘Α͘ͳ͍ʁ
࣮Ͱ"*ɾ.-Λ͍ͬͯΔํʹ ฉ͍ͨͷͰ͕͢ɾɾɾ
ͦͷ̍ /VN1Zʢͦͷ্ʹΔ5FOTPS'MPX1Z5PSDIؚΉʣͷ$Ͱॻ͔ΕͨՕॴ Ҏ֎ͷॲཧ͕͍ˍϝϞϦ৯͍ ˠ1ZUIPOࣗମ͕ΠϯλϓϦλͳͷͰΈ্ͷ՝
ͦͷ̎ ΤοδίϯϐϡʔςΟϯάͰ"*.-Λසൟݺͼग़͍ͨ͠͠ࠓޙͷधཁʹର͠ ͯɺ1ZUIPO/8αʔό෦ͷੑೳʹ͋ΓͰɺϓϩηε͋ͨΓͷෛՙ͕ॏ͍ ˠݪҼͦͷ̍ͱಉ͡ཧ༝ ˠΫϥυͰ͋ͬͯɺΞΫηεྔ͕ଟ͚Εɺ ɹɹ্هΤοδίϯϐϡʔςΟϯάͱಉ݁͡ՌʹͳΔ
ͦͷ̏ YܥͱYܥίʔυͷར༻ൺ͕݁ߏࠞࡏ͓ͯ͠ΓɺҠ২ ੑྲྀ༻ੑʹ͋Γͷ໘ϓϩδΣΫτߏ࣍ୈͰׂ ͱ͋Δ
ͦͷ̐ ݴޠඪ४ͷڞ༗ϝϞϦɺ/VN1Z1BOEBTͰ͍ʹ͍ͨ͘ Ίɺฒߦฒྻ"*ɾ.-͕ॻ͖ʹ͍͘
ͦͷ̑ $MBTTΛॻ͔ͣʹɺ͍͖ͳΓؔͰߏԽ͢Δਓޱଟ͘ɺ ϞδϡϥϦςΟʹशख़ϦεΫ͕༗Δ ˠ+VQZUFS/PUFCPPL(PPHMF$PMBCPSBUPSZͰֶͿਓ͕ ଟ͍ฐʁCZIBJHP
ͦͷ 8FC'8͕%KBOHPͱ'MBTLͰ̎͞Ε͓ͯΓɺௐୡ༰қੑ ໘ͰෆརʹͳΔ͜ͱ ̎ͭͷ'8ΛௐͯΈͨॴCZIBJHP %KBOHPˠϑϩϯτΤϯυ։ൃ͕Ϟμϯ͡Όͳ͍ 'MBTLˠܰྔϑϨʔϜϫʔΫͳͷͰ"1*ͳΒద͍ͯ͠Δ͔͠Εͳ ͍͕ϑϧελοΫͱͳΔͱͭΒͦ͏
&MJYJS͕ͨΒ͢ͷ w ฒྻॲཧ͕ಘҙ w ϝϞϦޮɾোੑ͕ߴ͍ w εέʔϧ͍͢͠ w 1FMFNBZ'MPXͰϚϧνίΞΛ࠷େݶ׆༻͠ߴԽ
ͳʹΑΓ࠷Ѫ͞Ε͍ͯΔ8FC'81IPFOJY͕͋Δʂ IUUQTTVSWFZTUBDLPWFS fl PXDP
&MJYJS͚ͩͯ݁͢Δ͜ͱͷϝϦοτ w 1IPFOJY w 8FCαʔϏε"1*Λ&MJYJSͷΈͰߏங w &MJYJS%FTLUPQ w ϚϧνϓϥοτϑΥʔϜ σεΫτοϓ
J04 "OESPJE ͳڥͰಈ͘ɹɹɹɹɹ ΞϓϦέʔγϣϯΛ&MJYJS -JWF7JFXͷΈͰ։ൃ w /FSWFT w ΈࠐΈػثΛ&MJYJSͷΈͰ։ൃ
͜ΕΒͷγεςϜʹָʹ ΈࠐΉ͜ͱ͕Ͱ͖·͢ʂ
Έͳ͞Μ͜ΕΛػձʹ"*ɾ.-Λ ࢝ΊͯΈ·ͤΜ͔ʁ
"YPO͔Βݟ͑Δੈք w &MJYJSࢄɾฒྻɾฒߦʹಛԽ͍ͯ͠Δ w ଞݴޠͰղʹͳΓ͕ͪͳ্هΛ w ϢʔβʔϑϨϯυϦʔʹॻ͚Δ w ৬ਓܳͳνϡʔχϯάΛ͠ͳͯ͘ेͳੑೳ͕ग़Δ w
ࢄɾฒߦɾฒྻͳڥͰ w ϋΠύϑΥʔϚϯεͳֶशɾ༧ଌγεςϜ w &MJYJSάϦουίϯϐϡʔςΟϯά্Ͱࢄֶश w ৽ͨͳػցֶशͷख๏ͷཱ֬
͓·͚ "YPOͱ"YPO0OOYͷݱঢ়
"YPO w ʹόʔδϣϯʹͳΓEFW͕औΕ·ͨ͠ w 5SBOTGPSNFS͕ಈ͘Β͍͕͠ະݕূ w (15ͰςΩετੜࣦഊͨ͠ w "YPOGSFF[F ֶशࡁΈϞσϧΛಡΈࠐΜͰߋ৽͠ͳ͍Α͏ʹ͠
৽ͨͳϨΠϠʔΛͯ͠ϑΝΠϯνϡʔχϯάసҠֶश͕Ͱ͖ͦ͏
"YPO0OOY w ͍͔ͭ͘POOYNPEFMTͷPOOYϑΝΠϧΛࢼ͕ͨ͠ɺಡΈࠐΈʹࣦഊ͢Δͷ ͕·ͩଟ͍ҹ w ࠓճ5PSDI7JTJPOͷֶशࡁΈϞσϧΛPOOYFYQPSUΛߦͬͨ w POOYΛ͖ͬͯͯͪΐ͍ͪΐ͍ͱಈ͔͢ʹࢸ͍ͬͯͳ͍