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
AxonOnnxとLiveViewで作る AI・MLシステム
Search
Yuisho Takafuji
June 28, 2022
Programming
0
160
AxonOnnxとLiveViewで作る AI・MLシステム
LiveViewJP #7発表資料
デモ動画はこちら
https://github.com/thehaigo/live_onnx#demo
Yuisho Takafuji
June 28, 2022
Tweet
Share
More Decks by Yuisho Takafuji
See All by Yuisho Takafuji
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Elixirでスマホ開発の現在
thehaigo
0
26
サクッと画像分類アプリを作ってみる
thehaigo
0
230
ElixirMobile#2 ElixirDesktopの前説
thehaigo
0
160
ElixirDesktop is Production Ready?
thehaigo
0
100
スマホで動く「GPS地図アプリ」はElixirDesktopで割とサックリ作れる
thehaigo
0
110
Phoenix 1.7とElixirDesktopでスマホアプリを作る セットアップ編
thehaigo
0
200
ElixirConf繋がりでLiveViewNativeやってみた
thehaigo
0
230
ElixirDesktop R&D 苦労話
thehaigo
1
90
Other Decks in Programming
See All in Programming
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
4.1k
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1.1k
受け取る人から提供する人になるということ
little_rubyist
0
170
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
120
讓數據說話:用 Python、Prometheus 和 Grafana 講故事
eddie
0
380
WEBエンジニア向けAI活用入門
sutetotanuki
0
320
macOS でできる リアルタイム動画像処理
biacco42
8
2.2k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
270
Server Driven Compose With Firebase
skydoves
0
430
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
140
カラム追加で増えるActiveRecordのメモリサイズ イメージできますか?
asayamakk
4
1.9k
Featured
See All Featured
Fireside Chat
paigeccino
33
3k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Raft: Consensus for Rubyists
vanstee
136
6.6k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
GraphQLとの向き合い方2022年版
quramy
43
13k
How STYLIGHT went responsive
nonsquared
95
5.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
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Λ͖ͬͯͯͪΐ͍ͪΐ͍ͱಈ͔͢ʹࢸ͍ͬͯͳ͍