From de85867c899fdb197a4e9f84f74dfe72116b163c Mon Sep 17 00:00:00 2001 From: chizuchizu Date: Thu, 25 Mar 2021 15:29:59 +0900 Subject: [PATCH] Add fashion-mnist(code) --- docker-compose.yaml | 9 +++ img/Fashion-MNIST_0_weight.png | Bin 0 -> 3244 bytes img/Fashion-MNIST_1_weight.png | Bin 0 -> 3058 bytes img/Fashion-MNIST_2_weight.png | Bin 0 -> 3299 bytes img/Fashion-MNIST_3_weight.png | Bin 0 -> 3209 bytes img/Fashion-MNIST_4_weight.png | Bin 0 -> 3239 bytes img/Fashion-MNIST_5_weight.png | Bin 0 -> 3067 bytes img/Fashion-MNIST_6_weight.png | Bin 0 -> 3330 bytes img/Fashion-MNIST_7_weight.png | Bin 0 -> 2994 bytes img/Fashion-MNIST_8_weight.png | Bin 0 -> 3234 bytes img/Fashion-MNIST_9_weight.png | Bin 0 -> 3006 bytes src/fashion-mnist.py | 122 +++++++++++++++++++++++++++++++++ 12 files changed, 131 insertions(+) create mode 100644 img/Fashion-MNIST_0_weight.png create mode 100644 img/Fashion-MNIST_1_weight.png create mode 100644 img/Fashion-MNIST_2_weight.png create mode 100644 img/Fashion-MNIST_3_weight.png create mode 100644 img/Fashion-MNIST_4_weight.png create mode 100644 img/Fashion-MNIST_5_weight.png create mode 100644 img/Fashion-MNIST_6_weight.png create mode 100644 img/Fashion-MNIST_7_weight.png create mode 100644 img/Fashion-MNIST_8_weight.png create mode 100644 img/Fashion-MNIST_9_weight.png create mode 100644 src/fashion-mnist.py diff --git a/docker-compose.yaml b/docker-compose.yaml index e653090..910d75a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -27,3 +27,12 @@ services: volumes: - .:/src - ~/.amplify:/src/src/token + run-fashion-mnist: + command: + - "python" + - "-u" + - "fashion-mnist.py" + build: . + volumes: + - .:/src + - ~/.amplify:/src/src/token diff --git a/img/Fashion-MNIST_0_weight.png b/img/Fashion-MNIST_0_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..9965c6711be61b31cdf1e7e7792378c0f3eead50 GIT binary patch literal 3244 zcmc&%ZA=q)9R3%|0G+gCiz1V@%VPMV6vhTBFU19|BtqRZK@uyLAP56W;G}|}LSDl>or{-RmuQ9z3 zFGF&(ksTJ8MPkk1dS2K35)I?7%1sQvZ}ACJRgpWS8dhy70bFV4I# zUpPbrh8Q`uUf0pI#WA7#zO2;Niy(v+6AJwaB6O)@bBm zD4$k5>{xoz;+d*kn@B|%Q)#z>x}MmsA>|l-M2oK3aSOdXEutvZ>dU!F3%!)i5fi9w zN@t*Yu_&IYVLsgG3BV$A5U@ZBTL5Bi12!o4g#?ATae?3@a09=1#efn&mKWfD@TNB% zdcbKU7km0Fw9fOEhLq?pR^j~GK|R)apCYhMrWj%7DTA%Fv~(21a@GmaTvt=Ih7?ir zO9rZ^V%9(%6YdbS*FSO~#a^OSaD2psd;#N|S|X%UiTdaI`Mhu~iWEj`A*<%O5e>O7 zJWxY6nCVC@dUd_eQe3xh+xU7N)YkE&g(zc8cUo(Vf!}4%<;=y&h5 zZ8veZ-ixlsC#F*EWj{h2C?7Qr7DquJ*qnq>^cXHR>3O+f5!kg5l5BDzY2&s(^@&&l z|M&<-lbLq*qpF}GF(FBW_Jra?Fxr+JfPSd`|8zDIApNEq-*6xdv{#fhpiDKVN=#(9 zkSeIJk~pY;I78!;6$@>cw84%ri=gHzagsVa<+1&_zbT-t4U%-4A2Zf72it|sd{Uap;9eYPVP_Ji_#Yc<+G0M zZSjAYrmv%!E3EF9eobfAXDu}BB@H=HM6UE2D5ugKWJZ5o$lAdLV=J`1M$h3kDW1kT zqN?LFWSoko;};~?Z{$WQ-DDTvbeY-uu7BB`?)5CQf-@YE4q}~q8v4gX5u#3VErK&` zqb*{hz29Vs2BEH1M19uZeI`){|3EJ!6L{Bi3*8_*IlbT2apR0T>kQ<-4VD+IuvbL} imu6!i*M(qg{CCOU*6!AcI^mxKh&z!G+x*F;n|}eVm8Hr6 literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_1_weight.png b/img/Fashion-MNIST_1_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..f82c733e04ed1a7106f9dc8b12aa5649fb4e9734 GIT binary patch literal 3058 zcmcguZ%i9y9DWPSR>roXBcW3!)tQM2wrb~u8QMBop@~v-Gm|ftVp^>-%Gyh(HSLwD zL2)qSmH}a`m@eKv=rCdiv~K6@2yv`ntrY>gV=_itX#1fpxAwR@ulQ&2gM5+Qhs!0G zH}^hy{`{WbM>W-zn>XIK5dg4RQC0C009iHwI5XV!%$KLUzujbBWzfD?p#6F+bVO~? zfEUzIQ-dCA(A5h}8iP@%Zxjo~!d)eTHz26VxJM*9^v?mI-tf98@4z)D^OKyWs#+re zJay*boRcCt0CH7|if0eJeLC_h+Io6^Tgwf_Quceix(nQM#vS~8{zEl&m%nKJCVc9H z{PnJaL4|luR^|BV<<|UWjjR0V<=*dmH3IFG-JwmoC9o;?-XCgjJ{n!v(~OD5X=9wa zwJ-sbu{VD-lva;z#qH?wVThicE|TM)Ehg>g_JEzDW4<{P1gGN@q$$lnq|kK&AUg)u zfe-Jo0q{gt9uUYu7P!Kd0UMvg1$jFF2h{)HL!Fv5=u9Mjp9pOgyoC>TNgg~@R){F; zJ}Fq!YgPlSt=%#bx*u?-`jif$@1Up>SAWXl?I~!er+lWVFn~nDsYN>)nAJisDrt)< zyD19s!*FptYpvK`jfNF*OMDx?JL~HH*h?PQ!~6hN-YCcMh5cqYO>A&}yY}+`7obtb zs2Heqjd&6{x=V2H)m%2rxPqqt`66&)EN0j82G8_h8BZ`Mf>tuFj45Gy^hT+ZcY;kO z5}e0F9WlvxRN7FG&w(CFe3O@~}+R8Io*(Xupf+ zAXMaS4})yD&k-NsO?yc)y~{}tkE`0Fc1+q9eXfheSanIj&c|A2gH*(Af@n-dzXrkh z;5KH`QHYdIkqnOsOv-Y$WRw2*Y$C_eSaiYn$k~f#Tn*7kjNwPrvV=*e*tJ!SiTG-J z0Cf%V1E|v~b<#eZnSBRi+WCy1{Jx;%W3bvXU{xy@>NPudYQQ-%(_hYR|NG@w-OSntuO9BB_Ju@6c+OY!vIO+kq;%L4(_e4WB$QC@+A zK%Y4_<}PNDm9GoieNW4NS*ZysqBFteF6oz4O0Q}_l(rHUfiUu%yf|c)TJ}z5rtqIz njmvB;44^6|)b58_#6pA5clT>%G~qU8xdn=S)fMOW)*bx=s$wq9 literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_2_weight.png b/img/Fashion-MNIST_2_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..95b6e2f2a442ebe781d099362e1f3b875330c7fd GIT binary patch literal 3299 zcmc&%drT8|9RHOu1OowM;$X_d_=ihIC>tuTq{V>+l1bTS;&9PY62N9cc^o1^dI)69 zL4ZFN!SE;?8wL1N75{;SX__^ zj*79oGg9n~BqQW(WQ zf3R;fTgd0$u~|>YmJN6LQn^BT_`bOEctsGh{a83mMN%`s&#ZQqp%=>H+M=#^;YvGlrHO@TL(3G#J z&LmVtTX&JiyufX}yfZDUM6pZIfj;i%T)QUlywrK3wN&g@Czb zO+4|WYUG-6=g+Ri6aFa?gJyDwUK6z(>ac6oqGJ8HWnK1Wd*bED&6V-r5W~9WUV#my zPq37TCr2a^O1$LzKoW;ba|Xt$=U-#&rM*#d-rn)uuWF@#!0@7Tv!ctumnT_ToDyP_ zfS+SqGY^#TlziHuB?yU@fPAhji0rYr&UR@j!MCo~XtQip3VI<*37y$AHgXo3Z&5VZ zLH@+9Ip42fL_t)1XSbkJ{^?IZb~QqCnNt= zoL~JmtH$4#-)eWVhkW8s!etW4v%0iDk?K5(GnB}2K&if3tna@fOmeNAL8g!LHdtuFA$WD|CH_y-2uA zuiYQs#ZZt|Nwa*<9g2lU4NByaBDD9oHhkN2iI_T*v&}_=ssNHjgqB65@UiaO21X&Q z{}y?aUCU;ULTGumFl~^vy0+#YTsn@X*K=K093c5fO2YN`(kuQ1H&WI& literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_3_weight.png b/img/Fashion-MNIST_3_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..5f029599b9aed9543a8fd4d62f02891d45ca1186 GIT binary patch literal 3209 zcmc&%Z%i9y9DZAv{1ZXSuzTQFJ007^VV@byWVAlY^`p5GH^dy?R{}9~{oC^t-$Us_g#osEo$jED*kJB{PQvKTJ+)6E4DSZN{G|HNG-dWo0t*r_rA z{Bj%@>uS8B2ml{zO49o$K5Je4YyX)&qM+JovNAit<7@9P>UJG^oyU5O!%AG*01+<^ zNOLl;cojGDu6!HiQ*`tAH~V-}?)8D}3{GzU(Yl~S??i7KxbV5B`5o)qQ~DqK%`G`^ zWHBGBZ)R0xCj4PmRmWBjT$T5&t$NAFI{bK)LIsU#XtWFXl*%?+OVZl9Q3JEmOH%@> z$>;{aI(!AOu%GP@!gzoUe)dcNH32M7;J+8JK(2cjNT>(y;LDevchRMBkKe4rX*yql zFt%4G5>>y8fHq3ojk|flL`9SmKAyFcbe+uHV2YeqE4m=;-AOoGe{96)mi_yqQZWu~ zBb40!X6#A1eY}d%sNs^fouoY!6p!Mh73!Px^BT9AHWk5rUOKjZ{~7GxE!_Zri?|2n zc9}reU{Y0E@^JWYxLrd_HMH^pSHh!CHciUybwdkKHfyWIWd~gh?(9p5t@aVJBA^_p zs*JZ!s4~LU6N8-oJ+4L4+%4`5)T$1D;;_*Ah@7O+AQ+h1@nN|=eQwuIJA6~pQ>mdK zzlEMO?haU;4wdk!c-5U(wSwRd9%YtE#s=SVH7!R3>X4<4Ne$iO^b6(?j4w7LV6AZ> z+S&sy#Pes@HI6_bsrg}0a!zi?bVmZU1hYaLm{q-QLHCs@O)RX$aH8T4!j+P>y%Dr2 z(34@-JiE&3rkBSNrrVqrlJ1(njmCalM!;;G=pnF!Vr>!y1Kru*Kk)xemB3UD|l zj8+m*59>|iE_Qz7dANwIHc#4yoQXO;<3Q$|M9mChv!n#W&r`XPO20-ICcJZpl*X~! z9@|#4acFVqo2G*?N;t}muQy>m zL;NjIp)|XNU9LB|mAQ~L=e}3~Mb?@+vE1U^fS_1^28Ygcb>c~bOla#E!#G2QQuFl} zE$r=Y4^J74aD`t@O8dwnNw*9lzmZd@Le!eG8cd;!*ARcIR+>@ty;pUhnw?j{+Kv|U z6dYSi6RJA>-;Xkj28Nuf#9^L(U!VGVQr?)|+7Ya*4}3N;B?gCIo_^^h;>u>`=vh(j0Td>EvHO Ua<^snpko0@Nls1bIGTOoU!fh4hX4Qo literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_4_weight.png b/img/Fashion-MNIST_4_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..1aebd49f221ec94c3804881941737d5252bbae74 GIT binary patch literal 3239 zcmcgveM}Q)9Da)^AA&&K=0_%F*@yoaU}Kel+Jg;?B#e@c3~?c)L|`RA5pI0btHzBj z5Zzx3o3O()u_P$!I!8DdbwR=i?dqjN7*HzmRlZuwSE0w$Dazwc3B0DynOxwwx3@K6H4d+NQ9eIp=8C)r07diFf}i98!El@?`z zkECc}o*d1SWrmbw6&1_m1rebUq3@pv`5Z+Hi=)HB^0yX*%8PQs0#kGZ`w^eQb7{o@ z1W37y*NmuT0QkL<5Eq+L*04CF%{A2==^dYNKIEk<{R9`iF9yBp`+CZ~*o@JbRDa&h z$8RKyk9Cxh&2QJ+pC}9}S8w9=ycp%d=1jN(c#?dA|5l;^US{D^X-(+F7CYj z44MX^@)wDOK3Vk}ZE@BdlE*v5))MyCCKoxre}D-n3aKm&C*VqrMC6byd+sO-+iTel zdijc8CC6~#l~xQoa-E*aAdH?EG#(F}b}u?9#Pg?Pu5Y7KN$L zWVJ9WGgw)bkkGcLs~t#Z*(m~{X?)GTx=hk)Wb-{jGUHZJHCc^JE()KoSD{+#WI-tk zQ7Rk7hFug-m8PmFPIM+oXMH1nl7^LQ)(jL+`*FwI=OudEZg%~%dzu!wnjlvlHcb98 zwZKc&Ec4BJs~Cf~Fib*k(iZj*jWYL^H5a^QRf{toyJ+R`!hSA}B9MG1E%AdeQOg(? zZ;;jXlWye`ywfoFMK zcW@^{t06d zAGD{7@$lR)eiaaK@|hIHG?CN>W}lcKX?@GM4UW+Z%snRzNL+GX`lKcCAKq3q_Rk&^ zomns$f(z|ssKQmD3_}(7&$DsF+4S@FWyF3_tu*C1jD8`Al8 z*6z2&yFFlS!B#)D!qd6*uU)s>Smr1&uhO`E;u##G%0=M`Wb})7jmsvg9^m z?5GJF>foF3HCFv=%GzEH^+>OPhS$7Ql=v$N;%420tbUv$adl&=0>zy4T`kkYER!4d pK{z*0ZVaqGu?RJ8oP-#!Fa7_z6TQ^)oc(D431^eyT0h9R@;8f=pLzfQ literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_5_weight.png b/img/Fashion-MNIST_5_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..9839b00615ef41176cc791b017123d82e1d68835 GIT binary patch literal 3067 zcmcgue@t6d7`<(Af#CwnG!O}eM5D{HP$oDO0uK#8iVg}&%vfMsNkD2CCGb%gM{h-<#cr0Sva)I*uLC6{aC9wL(YBt6JFxB8_!?6ds$JUNj|O;Y6&x3T%SJY z%K!@lg+96MnZZMI=3tUUb+!Zmb=E6@3%*G#1?qH8B1nA_a6ofHHYgng3E;h*sPlc? zRFGZqutg0cDFF0+N0BaOj9(Gb^>Q}#`Ue61)Xf8*wKb$@DJR{5L&cR$(sZcOIm0dl zwLZ{aU@(mi5X#*}O<1+&SK-ed9& zKK4+=Jg_nxnjq+w;z6(ZbN4J#_eu#YT}O$SM7?*OWmXnKQfk z&pY5Kg5YBOtwjcS*K2n%_bmZJDcCgk{}-~G&nm$IG@Dw=(kJwZVD!v#puqDhd5xgc zvP4>H#u^}K$>A-U&3~gi-4an7{_-nra67P5)hbv#PoD5f_lvY1O!fOQ91dyvvq)9g zV`rJFQgVzxA`+fs!Wv{I(E@Nx2apL@>_|^~9td`PwbOddsuMpuSYYz@% zBR@O(x3n58x*vId<~OI$b1BvVj5>}~hQ4NX7Hu23aNmOPDe?+U*NsR@fk%w1ehxZK zUca{oS4Di%KFFXpXsfB!DG6}5FstH3ZlvDcp^%Q?@#mEpB-U}^q*tTYp!}+a(aUp0 z*w|8hK$GiP>4|Ws4l@zdz@IF#II7Di(25tPXEyd1-XB<8LL?2y9TlN7U!k<2V_IWt ztF+U-EBz{c?>I7~pg>v~g3Qoup9wOQR78yFr<(d z88B<|=089FDQWz*BlAZVtq2VA-<{}qOiKW;MjFC=7I%LaiexDO{kag@+08)Pi2^%8 zU+TvB>Wi^Rj;&L=kj2)=MhDy(6-{5*(g27aWYL9?H_SJx%Ga0c&_f(lmDiN%Upo5s EADtXK*8l(j literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_6_weight.png b/img/Fashion-MNIST_6_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..818c62e2f08cab4d6e5562cbd573ac60738ce9eb GIT binary patch literal 3330 zcmc&%ZA=qq9Dj;LnN!isOss}N_&}Bj1rZ%gd(3IYMX8%E8-Y0FRn~8p!b{{U6yF9t) zcmLnp-ACI}HqD{1 zWO0FtEXd0aE8VFs$x{`@MaM<2S`oI3B#TQDrP9Jj3!+u(T4iaIwdCaBdpeton;YN7hJOl-aQs+<{gYc_(0a9zz@I_jB##YJx@2p!S08}BVC^XY7hT_;IN4moE9I%@k)~FyJ|YZ3U-^a zxg}L0$@;CotJ|Q9$@h#=eM>0MPESx?(eq~V5!|{?m#FT?mQ#uzWY z|FNToMysq;ziX^p68!UWuAyX>KO{B{Y(;(WHce$&JY!rppmW5ToVnNUmBurK02K(* zt*s#(x;=Q56%zfcHL!hkGv<&pmyuL?tAwLh3sVLovh%uBKN8jvS)(8nlCMW@N$Gkl zoAOp#7Eq0m*(1IgE&5&WRY?d5$3t_O^RCLE`{ds2XPNjj1((QP!;)* z)*}>Sn*SWL{&Aig>trCthV$MYQCsGHI5`A;hBW$eV;X31O0F&Ivt`esWFFu6DV>I! zsEXl(kLtaqVRo|GY|kf=&8UrMPz&p>uAUBm)Ip<_402o1I)*6Rr(MNR{9wlroY+e+ z)Po1vB<102{uk%|*;_^;PD9K2ZbgHfH;fkL(CC3@7io0#=i(d9UAV~1qxl%2Q{fc| zn8;A5t4HtMAf+-BT+aLH}0v(8w6_d&CCd=h?8arqoQ*uRPV>Wf7vqUOgSn}n6X9N?&)BTxr2Re zkBGVASFa{aE5HyHs&8{ZDqb5 z&i|VA^;c&0g~Jc4it6qZZJcSx$WXNGck-|Q|LxtbGcx>m!=k|8(8IvO&>;x)t|5~E zgMu3a6T=Y>2Zja-Mh*r6Wd=ruBuW*{Nd482dHQJDFBXOe#;gDT|IS1$lL@*}=P`Rs z&N6=n29J;Qvy{4_N6?RSwod0VJA=XF$Ge{|{vH4K!|fM#x%};~UkbZbGSWC1Ap#<7 zec1Z>%la8+d??r5lY-L<~%M{Y^|uixS2zrPih)c?*(FS*Z6kK_$@*JdAi zhBK8GG5+%nUVVG}_{G1E_nyA^*S=YN@$XV#(g!;1`~RE2@4J7mzqwcLuKms1@^|T( z4dn0J%G*9TZU4^w`*L0J*}&+sm07pk-(z>}Z;M^~YquKjs^3#?xvRd;_|ISaA0}4y zd(3}-fBz@p+voqEpPpa*J39Km?7j3!;#4gc5D|)5!lcc#TksB;$S$idsr`BU?~8w% zzwhsV_rLU8Qpx`pXMsWc^K4bg|B8I$UGd+)`p2J<`%qLiFLL?r>x+NKQKQVl=Qel| zIpb;l{l6Bq%*}r9zPW!tpMP!f@9pf1KS!TWd%pc0zg_RU`S0TT-(C0p|1UTGZO=RT zz58YEwtLdkeNXc0zcgIF`x=-(em$?R+YHPt1)w1O0Sdw|_vi0=yL#@$zl$Hfm!Cq< z{M-Nk|MkmX1SccHZ3{4je1Lfe6t{JMzu*6U{`>kjpy++iN}EavO9V&${ru)j=BEbx z_L_PzgJOy9ft_t&_8e?9;I7GTJ}6z2F$zp7SNeK|Op-IuSCx;y{h&*i@L|4P5^-+#tx zCw)tsHF0a>?0w}K83I0m%4d3(bHKWZ;fjv{%k_-TC_?u>H*7>FVdQ&MBb@0D`~z AH~;_u literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_8_weight.png b/img/Fashion-MNIST_8_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..f46d810207d1b53bc32ab0768fa4d5e38bc9962f GIT binary patch literal 3234 zcmeHKeM}o=9Da+FFUN|}AQl{`Q81a{WQYvp*uwZoggQt3!j%=bu`ZNjaDc+fAx@_O z#^N-f0=I++iwmm+blL$on1g6rNLM$Y^C;hKVO;qbJ)pfiUzpMV_MhiJ{&Bh7<;~^! zJ@4~8?{lBMmX_q>E%62b_@pE!ybgd{IRK(DPj~nx((uO=yhUUC-og%`N3mjg{t=KW z$MSMeEJu+QTy!MAK!N5)ghhny+7WyV!}1DthleZwUJ!=nXNUWy>oo8qUU|uH7XToZ zZ(O1aNQ(l1t>Tn~J?Zb)&kwg9|I$m+KYrM9RTO^p(O$ob)Zw!q`|gnkAMPrD?$lVi z-y0ce@11+``(e-98N)ud8SjeV&`^)9dnNLRdOnSurmWNirs@l{|8`1D~o2dt>!L4bHv7D}@C&8^+WcL#p1f%W7zIAYDxl@tl#a*V97;d4=o_pm>LC+{$&d zR*zUv(?m|Bsy7rBOm218?}`e^*bibfcu8B7hMyi=v2tD2Elp1CvSIDS95rWPzqvMI zxksy#H!=p6Kd6htwaXch;68$9Pd6=Q;#IiiQ?9;S{gCWUagu?Z+bN>xz0+tne6V!P!MuV_U#3cKck>=vtDWu!MzQDCo>Yv4xS zvr4lxImRSQCC)nf?Z_aF>S%Sb8j6tMZFX|ny583Z^Jn3~_D+#tHEy#@?o=g==*MCF z!J}J~$*+kHRR}1n%>$*mW~0bX3YV|<>w^D6XI{p?yE3)N1u2y9e*vWIOG~)4_fW;3 DUuvwX literal 0 HcmV?d00001 diff --git a/img/Fashion-MNIST_9_weight.png b/img/Fashion-MNIST_9_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..2afc4371bd2f4d08370cfc93441c1b563db80f60 GIT binary patch literal 3006 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWKGtp7VC@Co@w$j(ng)7j@FG|-J2syJ0Xb5M4M`SSr z1Aih2Gp?{-p2@(#t?lXJ7*a9k?Tw9DcS|LXKa{Z*IKet6kI!jZ^FpT;3Cn|u8D*Ik zMz{IsHFbL*V?L+n$H%wmi<;MhW@n28i%YHr8WuCSHCUt`#s1)%|9ofT```9Qem&f7 z5jn^14I{&Zj~Bl%GBEtv&!WKK(8IvO&>;x)n<0|`gMu3a6T=Y>2Zja-Mh*r6Wd=ru zq)|oqf?&o|U{D6z+1SssYjiw){q{>?H{bt%|Nl;@FR8z^`1S6Kwfb}m+cQPK7#dcU zi+{hY-g9fegCof<8>3+R@@$dh3H|6i{ul`e4Qh(>`@x`Cx=oYh(0J;}@r~lpj zwc8i}o_#g1r2hTQH-DbKz4+qav)K>t&kt;`e!loOy`6OK+U<*f&t{qLs;{gz*=7It z@8#bHC%NgCBR0>mV@Npl{(ha|uKJ2Xn_czW?)ANMzWML$!590)>6QW0ENdAKOaUjE zCAHrUUtj!NKW?Ao-TQ0G7XLmo>)-FsOmr&-bo|7Y^Ivvn@b&+MDmDSsiFaG`8 zoE_OoTV&(r_P?uUq+5|Crrv$I{iSk)Wc~kNKfiD;{+7?@_Wixwe)+re|NYCXulxM? z3#Y*``lgywz|ux;--Eh}`fH#9=C6Kyp8NOj*EWAXAVc4>X2zHE<^Jx_;3xy7-~76p zz3=2fan%3+-|Cz9|9|?HQBwcwcP2g4k=@_i&jz(emh7MR7nrRoO6_*pzs=bzd$<1U zw~CVe|Nj2_J=^r}@A!Liz3(n>i+sDxU*ah%-KxGwKluVsNP(^QpZ)Kz`Rcnb{%!g7 z9UN-@|NrisDf0zIL`sVpdVTmVnbltoAGH2p8%$o}=05-Gp%>MW9^zFqL z|7L!DZy%lS{yl!LtsF4nfB$~*E6~yJtK)m#y^p literal 0 HcmV?d00001 diff --git a/src/fashion-mnist.py b/src/fashion-mnist.py new file mode 100644 index 0000000..15ca9f0 --- /dev/null +++ b/src/fashion-mnist.py @@ -0,0 +1,122 @@ +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.metrics import roc_auc_score, accuracy_score +from omegaconf import OmegaConf +from torch.utils.data import Dataset, DataLoader + +from utils import * + +conf = """ +base: + api_key_path: "token/token.json" + train_path: "../data/fashion_train_400.csv" + seed: 67 + +dataset: + img_size: 20 + features: 400 # 特徴量の数 + val_size: 300 # validationに使うデータ数 + target: 5 # ラベル + +model: + timeout: 3000 # ms 計算時間 + # 訓練に使うデータは(batch_size * n_iter)個 + batch_size: 20 # バッチサイズ + n_iter: 5 # ループ数 + l: 2 # 正則化項 + each_weight: 1 # 重み係数 + length_weight: 3 # 重みの層の数 + multiprocessing: true +""" + +cfg = OmegaConf.create(conf) + +init_client(cfg) + + +# PyTorch形式 +class MyDataset(Dataset): + def __init__(self, data, label): + self.data = (data / 255).astype(np.float16) + self.label = label + + self.label = np.where(self.label == cfg.dataset.target, 1, 0) + self.data[self.data == 0] = -1 + + def __len__(self): + return self.data.shape[0] + + def __getitem__(self, idx): + return self.data[idx, :], self.label[idx] + + +def get_ds(n, seed): + true_ = dataset.loc[dataset.iloc[:, 0] == cfg.dataset.target, :].sample(n // 2) + false_ = dataset.loc[dataset.iloc[:, 0] != cfg.dataset.target, :].sample(n // 2) + return pd.concat( + [ + true_, + false_ + ] + ).sample( + frac=1, + random_state=seed + ).values + + +dataset = pd.read_csv(cfg.base.train_path) # .sample(100).values +for i in range(5, 10): + init_client(cfg) + cfg.dataset.target = i + train = get_ds( + int( + cfg.model.n_iter * cfg.model.batch_size + ), + cfg.base.seed + ) + + val = get_ds( + cfg.dataset.val_size, + cfg.base.seed + 1 + ) + + train_ds = MyDataset(train[:, 1:], train[:, 0]) + valid_ds = MyDataset(val[:, 1:], val[:, 0]) + train_dl = DataLoader( + train_ds, + batch_size=cfg.model.batch_size, + shuffle=True + ) + valid_dl = DataLoader( + valid_ds, + batch_size=64, + shuffle=False + ) + weight = np.zeros( + ( + cfg.dataset.features, + cfg.model.length_weight + ) + ) + + weight = run_model(cfg, train_dl, weight, cfg.model.multiprocessing) + pred, label = eval_model(cfg, valid_dl, weight) + + print("=" * 20, i, "=" * 20) + print("AUC:", roc_auc_score(label, pred)) + print("ACC:", accuracy_score(label, np.round(pred))) + print("=" * 43) + weight = weight.sum(axis=1) * cfg.model.each_weight + + plt.imshow( + weight.reshape( + cfg.dataset.img_size, + cfg.dataset.img_size + ) + ) + plt.axis('tight') + plt.axis('off') + plt.subplots_adjust(left=0, right=1, bottom=0, top=1) + plt.savefig( + f"../img/Fashion-MNIST_{cfg.dataset.target}_weight.png" + )