Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
NxでMNISTの手書き数字画像分類を試す / Training MNIST Datasets with Nx
Kentaro Kuribayashi
February 25, 2021
Technology
0
120
NxでMNISTの手書き数字画像分類を試す / Training MNIST Datasets with Nx
NervesJP #15 Nxを触ってみる回
https://nerves-jp.connpass.com/event/205125/
Kentaro Kuribayashi
February 25, 2021
Tweet
Share
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
kentaro
2
560
kentaro
1
1k
kentaro
1
490
kentaro
3
480
kentaro
0
430
kentaro
3
1.3k
kentaro
3
570
kentaro
0
12k
kentaro
1
190
Other Decks in Technology
See All in Technology
finengine
0
280
legalforce
PRO
0
200
lain21
14
5.3k
clustervr
PRO
0
180
you
0
130
you
0
110
miyamotok
0
100
kanaugust
PRO
0
110
halhira
1
120
line_developers
PRO
2
190
jozono
6
1.3k
sei88888
0
430
Featured
See All Featured
stephaniewalter
262
11k
jrom
116
7.2k
ddemaree
273
31k
dotmariusz
94
5.5k
marcelosomers
221
15k
geeforr
333
29k
cassininazir
347
20k
danielanewman
2
560
jponch
103
5.1k
philnash
10
680
andyhume
64
3.8k
samanthasiow
58
6.4k
Transcript
܀ྛ݈ଠʢ(.0ϖύϘגࣜձࣾɺઌՊֶٕज़େֶӃେֶʣ /FSWFT+1/YΛ৮ͬͯΈΔճʢ݄ʣ NxͰMNISTͷखॻ͖ࣈը૾ྨΛࢼ͢
܀ྛ݈ଠBLB͋ΜͪΆ IUUQTLFOUBSPLVSJCBZBTIJDPN ɾ(.0ϖύϘגࣜձࣾऔక$50 ɾҰൠࣾஂ๏ਓຊ$50ڠձཧࣄ ઌՊֶٕज़େֶӃେֶʢ+"*45ʣത ࢜લظ՝ఔࡏֶதͷࣾձਓֶੜͰ͋ Δɻ *P5ؔ࿈ͷݚڀΛ४උ͍ͯ͠Δͱ͜Ζʢ ݄ʹ/FSWFT͕ग़ͯ͘Δݚڀใࠂจʹͭ ͍ͯൃද͠·͢ʣɻ
ࣗݾհ 2
/Y /VNFSJDBM&MJYJS JTOPXQVCMJDMZBWBJMBCMF%BTICJU#MPH IUUQTEBTICJUDPCMPHOYOVNFSJDBMFMJYJSJTOPXQVCMJDMZBWBJMBCMF
*OUSPEVDJOH/Y+PTÉ7BMJNc-BNCEB%BZT IUUQTZPVUVCFG1,.N+Q"(8D
ಈըΛ؍ͯΔ͚ͩͰΘ͔Βͳ͍ͷͰ ϥΠϒίʔσΟϯάΛࣸܦͰ࠶ݱͨ͠
+OOOY+PTÉ`T/FVSBM/FUXPSLXJUI/Y IUUQTHJUIVCDPNLFOUBSPKOOOY
͜Μͳײ͡ͰKeras෩ʹࢼͤ·͢ ./*45σʔλͷಡΈࠐΈ [x_train, y_train, x_test, y_test] = Jnnnx.MNIST.Dataset.load_data() σʔλͷܗͱਖ਼نԽ x_train
= x_train |> Nx.reshape({60000, 28*28}, names: [:batch, :input]) |> Nx.divide(255) x_test = x_test |> Nx.reshape({10000, 28*28}, names: [:batch, :input]) |> Nx.divide(255) POFIPUFODPEJOH y_train = y_train |> Jnnnx.Utils.to_categorical(10, names: [:batch, :output]) y_test = y_test |> Jnnnx.Utils.to_categorical(10, names: [:batch, :output]) τϨʔχϯάσʔλΛ༻ֶ͍ͯश params = Jnnnx.fit(x_train, y_train, epoch: 5, batch_size: 50, learning_rate: 0.01) ςετσʔλΛ༻͍ͯධՁ score = Jnnnx.evaluate(params, x_test, y_test) IO.puts("Accuracy: #{Nx.to_scalar(score)}")
ૉͷ&MJYJS $16ʢ&9-"Λ༻͍ͳ͍ʣͰ࣮ߦͨ݁͠Ռ˞ ֶश݁ՌʢΤϙοΫ5ɺֶश0.01ɺֶशʹཁͨ࣌ؒ͠: ͙Β͍ʣ ˞&9-" $16ಈ͔ͯ͠Έ͕ͨɺܻͰ͘ͳΔʢ࣍ϖʔδʣͱ͍͑ݩ͕ա͗ΔͷͰಉֶ͡शΛ͏ҰΔ͜ͱ͠ͳ͔ͬͨɻ
4PGUNBYؔͷ࣮ߦํࣜ͝ͱͷϕϯνϚʔΫ݁Ռ IUUQTHJUIVCDPNFMJYJSOYOYUSFFNBJOOYOVNFSJDBMEFGJOJUJPOT
˔ +PTÉͷϥΠϒίʔσΟϯάಈըΛ؍ͳ͕Βࣸܦͨ͠ ˔ ػցֶशϥΠϒϥϦͷΑ͏ʹ͑ΔΑ͏ʹཧͨ͠ ˓ ࣸܦͨ͠ίʔυΛϥΠϒϥϦͬΆ͍ϑΝΠϧߏͰஔ ˓ ϋΠύʔύϥϝλΛؔͷҾͱͯͤ͠ΔΑ͏ʹͨ͠ ˔ ./*45ͷσʔληοτΛऔಘ͢ΔϞδϡʔϧΛՃͨ͠
˔ ֶशͨ͠ϞσϧΛɺςετσʔλʹΑͬͯධՁ͢ΔؔΛՃͨ͠ ˠಈըͰσϞͯͨ͠ίʔυͷݩʹͳ͍ͬͯΔͷͱࢥΘΕΔͷ͕ FYMBͷ΄͏ͷFYBNQMFTʹ͋ͬͨʂ˞ ͬͨ͜ͱ ˞IUUQTHJUIVCDPNFMJYJSOYOYCMPCNBJOFYMBFYBNQMFTNOJTUFYT
˔ ݱঢ়ͰϨΠϠʔͷߏɺ׆ੑԽؔɺଛࣦؔΛܾΊଧͪʹ͠ ͍ͯΔ͕ɺࣗ༝ʹΈ߹ΘͤΒΕΔΑ͏ʹ͢Δ͜ͱ ˓ ͦͷ͋ͨΓ·ͰΔͱ͏গ͠ϥΠϒϥϦͬΆ͘ͳΔ ˓ ͍·୯ʹॲཧΛͦΕͬΆ͘ݟ͑ΔΑ͏ʹ·ͱΊ͚ͨͩ ˔ &9-"Λͬͯ(16Ͱܭࢉ͢Δ͜ͱ˞ ·ͩͬͯͳ͍͜ͱ
˞+FUTPO/BOP(#Ͱࢼ͔͕ͨͬͨ͠ɺϕλϕλ৮ͬͨΓ͍͔ͨͤ͠ىಈ͠ͳ͘ͳͬ
͜Ε͔Βඞཁͳͷ͕Γͩ͘͞Μʂ IUUQTZPVUVCFG1,.N+Q"(8D U
˔ ݱঢ়ɺςϯιϧͷܭࢉࣗಈඍͷɺσΟʔϓϥʔχϯάΛ͢Δ ্ͰجຊͱͳΔϏϧσΟϯάϒϩοΫ͕Ͱ͖ͨͱ͜Ζ ˔ 5FOTPSGMPX,FSBTɺ1Z5PSDIɺTDJLJUMFBSOͷΑ͏ͳػցֶशϑϨʔ ϜϫʔΫ͕͋Δͱ͍͍ͳ͋ ˠͦΜͳؾ࣋ͪ͋ͬͯࠓճɺࡶʹࢼͯ͠ΈͨΓͨ͠ͷͰͨ͠ ˠʰθϩ͔Β࡞Δ%FFQ-FBSOJOHʕϑϨʔϜϫʔΫฤʱΛಡΈͳ ͕Βࢼ͠ʹ࡞Γ࢝ΊͯΈ͚ͨͲ͏·͍͜ͱઃܭͰ͖ͳ͍ͯͬͨ͘Μ͋ ͖ΒΊ·ͨ͠ʢؔܕݴޠʹͳΓ͖Εͯͳ͍ʜʜʣ
ࠓޙͷظ