From 2625b363d7f6478ea474c97dfcf1c41b892f5174 Mon Sep 17 00:00:00 2001 From: Adam Drake <drakeadam02@gmail.com> Date: Tue, 19 Mar 2024 12:43:13 +0000 Subject: [PATCH] starrt on ml model implementation --- .../Adam_Drake/fig.html | 0 .../__pycache__/views.cpython-310.pyc | Bin 1622 -> 4726 bytes .../templates/prediction_service/model.html | 2 +- prediction_service/views.py | 63 +++++++++++++----- 4 files changed, 48 insertions(+), 17 deletions(-) rename {user_session_data => media}/Adam_Drake/fig.html (100%) diff --git a/user_session_data/Adam_Drake/fig.html b/media/Adam_Drake/fig.html similarity index 100% rename from user_session_data/Adam_Drake/fig.html rename to media/Adam_Drake/fig.html diff --git a/prediction_service/__pycache__/views.cpython-310.pyc b/prediction_service/__pycache__/views.cpython-310.pyc index f0175546cd6781327d8e94b0c0bfd5957f696352..437076524b6908ca7b4458e7e053daadbcbc497f 100644 GIT binary patch literal 4726 zcmd1j<>g{vU|`VR_#xFwfPvvLh=Yuo85kHG7#J9ecQ7z8q%fo~<}l<kMlt3xMKLjg z_)Iy>xhzpEU^a6OYc5+98zVysOA2cadoD*52bj&4!<ow!#RXQwp2MBX6UD>Gkjj?A zk;2)+(99Uco5GdC-NF#Xm%@|6+rkjVpTdyBmm?4*0Hy__1i`dWlrWeU$rX(f1DnN{ zBOWE5!jQtBBatf^B?%RiijqoYOA$yB1e-0L!WYb-DfANLCrzeXY(=SgDXB%bIEqqJ zGK*4^OEej8apa~J7bm8t7Hcxz;>*cT&&-Q2N-ZqSEJ{sz$;iOKpvibkAhbBOC@3{O zv$!O+$SuDpSCjD;OF(`xNIMHiE*Yc{WCsW{F)%Q&FfcGUgThS-6mE<uOqq<ej3o?N zj0>0+GSo1pFxoJbFxN1oFxN0PGY2zhviL=@7UUO~6yIW~k|_YWF1aK#KQF#GwWusJ zIaNO+KQ~n`qa-&+lck7*fq~%`dwx<@YH~^OE#}0WoFb5wnoPIYK@LwXF1f{?oS#>c zT2Zo+p@^S>f#H{eequp^J{EJ!GE>Wo^$IF)v4Cs<sVxQ>&%(m;pO1xysYsB4fdR#H zAdj-bJSV`wz)-?a!;r$5!j!_C3G+&oEEby*lk!VTz+Sk;T9R3klN!b92olm{gt(ru zh?ju@;#{zsi$I3oVg+lH0)-^Vj{=NE!sspnB~dn*i&7XE7-|@@7*ZIsnTpg)7;6}^ zn3@@D8EY69FfU{%QmbKHz_O5mk)eh$i**583e!TyTBZ{A1sve0V4BU4!ZMe6Arm7* z31<pxGh;AA9&-s}Gea$730Dn63R?<$4I|W-9DcW00{nwRZgG?rrxxWU=B8GOI3_3O zm*$lyBp0P7mZYXAq~#YW{9;tB;`a4%bPU!7r>!alEMZdwO<IuPVMzm}Fz#Dyxv3=? z`6)&0pl}fZMLI`jaeP@~PG-t2mg2;+)LT5sIjM<xsVVU(i6x1*nA1~Bia-hP7JG4N za&l^MaS<qNAi>KF30`rKS)w2U6xT=r%>i?R94M?owsA3WF>)|*F!3;nFmf<5{bJ(~ zU@ij5`e`!WV)e{TOix8g8K8nh1{M!ijG&aUfH9pRg>ex&$pjW*29qpck`+v{fk}2S z$pI!g!6X-$<OY*GV3HS1@_|WyBvJs(76g+*U{V-NihxOkOC%S9(?k|iil`(*EmI9+ z7E_9tBttE833C=pidc$Rig=1dFLMl2ElVwH4Qm!_4P%OAic~KsWw0$^U&v6)R>P9T zQNxxZogxDgtzlchnIgK7k&&T<YXNr++d{@#_7aFnjvDqXo*Ir6S%}IK-UWO$91Hjt zGAv|VAdn)rkg=AtM6iY-MLtELh7+2)6#X<Mi$Gazpa}X{{}NP0zI?&J!0=KXlqTUm z#%}#fJCMpi6qS?&(8~&td0Rl{fr@E_Q8=ux11Vn&QVw@0LJvu-m!QJz<xG%ymq3ID zilI2HzXMW)s*)s25sF_*gDm|AA{K!RMfDC2>+gY7Qpfu3Afxm_*4KhqL|Lx~QvMZF zIl@=OvR)nonF6-n0>mQ5`XW`3N{}96ZNaAQC8+p)`5b1{OIZ+$80%lo2dSjg`XX@b zflPUM0~DH|8Wzo&*yFy)nk?&I@_}p#0}-1*#1EJ$FQY*$RF8ulLdg1;$|xFNg8gC$ zGP?vsOaKwnK*UE7@fk$C0uh@*+B`w5KOmM4h#=m250J*cAmS~EI1kbt04MxFEU-g< zfn+~`xMm<$KZxZ7Vu7l~m!LLi5#GWJyYF9?gN)b+GAtaEc$oweGY1h^JOmEZmuVnb zkPC}+K`dPAuv-r{f)e88N|2=>>tA+)Sai0&C<<gL*m_G4YapzD`5zR8aRX(25!m+$ z18RMd)__?b3$l4Ytd9rT3<`YwzK7&4P#;E<=_RNEUj&LPO~xqpw9NG4%&OEVcK4#x z%HsGUO~xpe<lMx9DCUB^bWO%vY@n_}Vo4NpfS-F6YiUWEt_9Z4S8jevY7V4#!Je6$ z9$#Eiq$zZZDX$=kJ+U~ks3@`W7He@vVnOOH=7OA(D30RNq=KCMlHw?~%-rIP{PJ5& znfbTaohnOGi#`3L*g>6-w9NEdEXAp**+uf8t_e$iL26zRsH1j^Eh(`$)y(7;XOfvo zYF=`FO6o0+^wg5F#GKO9TWl$*AQ4EXgbUm$iDJu5EGf#Yh~g?rERWAf%}mcIiQ)vY z%QI6-GNPE%GSj1&5-V;oCzYn%V$RG>kK#xwO-oBHN=+#O7k_Ad8TQ;9u!ljld$A7# z0|OT`8zYJE1(!4zqX-ipBL@>7BNrnVBL_1dqX?q_Q&9nEOhD$AKuT6(UV6S>aYlYo zNpfjPG1yDs9@i~Cs2r#lUX+;x>6FQ#3hE`6mSpIGLZc|LB)_P*2-K^-#R`hhVsMx5 z78}?T#gP8K6gJ&Z1)QK{2I{GUJICNY+AXI1;v!JFAH|winp;p=l+3`u5G9zKSOSXI zoXjM>f=Uo8iVZ>+rGn&Ha|?1(jBhaqc=~{2wI~Z@GRVV_o+4T}bJ*nOr<CTT+JVZ{ mVl@T^1_1^hCLTr}HW0}K>OXREuy6=*Fmf>RKrs^&A0q&;I8For delta 411 zcmeySa*c;CpO=@5fq{X+()>f}F7}ChGK_O3YFDWXr7)!M<p}4BM2RvofZ1YEVySE? z{3!x049$#D;wgN=44Q%)U-&WCCo_T!fMON~1_llW1_oya28Loc1_p){##+V_h8o5c zre>yoo?50FrUi@(8ETos8B!Qn7+4sZnHd@KI1Cwz#mX5O89*?SfsvtvsfHniIfbQ$ zIg_!OIha9{)vrpmv^cdWzBskGI5R&lJ|(dvQQt8oF}FV6r6@5wRX;5=T`!{~H|G{( zQI%{#QEEzNatTObacWUnW^$^2ZhlH?4nzeHNL_q#eqKpxUWq32EtdR()Vy0PMX8A? zMNA9~44N!OybKHsw^#}iOEPY;q-Ex$7AY_=Fck5_2?3Bidu~o{zHCZrjw#5upm1d2 z;bG=tl=&~fT%-yzNMf>;;9~A5*1Xc(g32hSyn@N^1f}_+m<w`BqF8eaa#D<oR41zm VsWB={_7#%m;9=xoWMblD1OSW5W)J`X diff --git a/prediction_service/templates/prediction_service/model.html b/prediction_service/templates/prediction_service/model.html index 5324412..28dad7b 100644 --- a/prediction_service/templates/prediction_service/model.html +++ b/prediction_service/templates/prediction_service/model.html @@ -7,7 +7,7 @@ <h1>ML-Model</h1> - {{ html_content | safe }} + <img src="data:image/png;base64,{{ img_str }}" alt="PIL Image"> </div> diff --git a/prediction_service/views.py b/prediction_service/views.py index 7805c68..9baf72e 100644 --- a/prediction_service/views.py +++ b/prediction_service/views.py @@ -46,26 +46,57 @@ def register(request): return render(request, 'prediction_service/register.html', {'form': form}) import os +import io import numpy as np import matplotlib.pyplot as plt import mpld3 +from PIL import Image +import base64 @login_required def mlmodel(request): - # re generating the file is too slow for the display - # x = np.arange(0, 2*np.pi, 0.1) - # y = np.sin(x) - # fig, ax = plt.subplots() - # ax.plot(x, y) - # ax.set_xlabel('x') - # ax.set_ylabel('y') - # ax.set_title('Sinusoid') - - path = "user_session_data/Adam_Drake/fig.html" - # mpld3.save_html(fig, path) - - with open(path, 'r') as file: - html_content = file.read() - - return render(request, "prediction_service/model.html", {'html_content': html_content}) + matrix = np.asarray([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,232,39,0,0], + [0,0,0,0,62,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,180,39,0,0], + [0,0,0,0,126,163,0,0,0,0,0,0,0,0,0,0,0,0,0,2,153,210,40,0,0], + [0,0,0,0,220,163,0,0,0,0,0,0,0,0,0,0,0,0,0,27,254,162,0,0,0], + [0,0,0,0,222,163,0,0,0,0,0,0,0,0,0,0,0,0,0,183,254,125,0,0,0], + [0,0,0,0,46,245,0,0,0,0,0,0,0,0,0,0,0,0,0,198,254,56,0,0,0], + [0,0,0,0,120,254,0,0,0,0,0,0,0,0,0,0,0,0,23,231,254,29,0,0,0], + [0,0,0,0,159,254,0,0,0,0,0,0,0,0,0,0,0,0,163,254,216,16,0,0,0], + [0,0,0,0,159,254,0,0,0,0,0,0,0,0,0,14,86,178,248,254,91,0,0,0,0], + [0,0,0,0,159,254,35,0,0,47,49,116,144,150,241,243,234,179,241,252,40,0,0,0,0], + [0,0,0,0,150,253,237,207,207,207,253,254,250,240,198,143,91,28,233,250,0,0,0,0,0], + [0,0,0,0,119,177,177,177,177,177,98,56,0,0,0,0,0,102,254,220,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,137,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,57,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,57,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,255,94,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,96,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,153,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,255,153,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,254,153,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]) + + # Matrix dimensions + raw_height = matrix.shape[0] + raw_width = matrix.shape[1] + + fig, ax = plt.subplots(1, 1, figsize=(4, 4)) + ax.imshow(matrix, cmap='Greys_r') + + buf = io.BytesIO() + fig.savefig(buf, format='png') + buf.seek(0) + img = Image.open(buf) + + # Convert PIL image to base64 string + buffered = io.BytesIO() + img.save(buffered, format='PNG') + img_str = base64.b64encode(buffered.getvalue()).decode('utf-8') + + return render(request, "prediction_service/model.html", {'img_str': img_str}) -- GitLab