From a83f6d772cb652eb83b6960d6d1cb180f1479789 Mon Sep 17 00:00:00 2001 From: "pol.plana" <123639572+pol-33@users.noreply.github.com> Date: Tue, 22 Oct 2024 13:47:29 +0200 Subject: [PATCH 1/5] Plugin Allotjat Localment --- backend/requirements.txt | 2 +- plugin/GAISSALabel_plugin.zip | Bin 0 -> 3436 bytes plugin/GAISSALabel_plugin/calculator.py | 42 ++++++++++++++++++ plugin/GAISSALabel_plugin/gaissaplugin.py | 12 +++++ plugin/GAISSALabel_plugin/main_script.py | 17 +++++++ plugin/GAISSALabel_plugin/plugin_interface.py | 5 +++ plugin/GAISSALabel_plugin/requirements.txt | 1 + 7 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 plugin/GAISSALabel_plugin.zip create mode 100644 plugin/GAISSALabel_plugin/calculator.py create mode 100644 plugin/GAISSALabel_plugin/gaissaplugin.py create mode 100644 plugin/GAISSALabel_plugin/main_script.py create mode 100644 plugin/GAISSALabel_plugin/plugin_interface.py create mode 100644 plugin/GAISSALabel_plugin/requirements.txt diff --git a/backend/requirements.txt b/backend/requirements.txt index 5d59e33..33dec46 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -86,7 +86,7 @@ six==1.16.0 sqlparse==0.4.4 tensorboard==2.13.0 tensorboard-data-server==0.7.2 -tensorflow==2.13.1 +tensorflow==2.13.0 tensorflow-estimator==2.13.0 tensorflow-io-gcs-filesystem==0.34.0 termcolor==2.3.0 diff --git a/plugin/GAISSALabel_plugin.zip b/plugin/GAISSALabel_plugin.zip new file mode 100644 index 0000000000000000000000000000000000000000..6fe3ff209645c0ed29a1cfc9c5798b92f02959c4 GIT binary patch literal 3436 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 M7+9iFA?Vw`0er9Apa1{> literal 0 HcmV?d00001 diff --git a/plugin/GAISSALabel_plugin/calculator.py b/plugin/GAISSALabel_plugin/calculator.py new file mode 100644 index 0000000..f70d51c --- /dev/null +++ b/plugin/GAISSALabel_plugin/calculator.py @@ -0,0 +1,42 @@ +import os, csv +import tensorflow as tf +from tensorflow.keras.models import load_model +from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2_as_graph + +def calculateH5(model_path, output_path): + model = load_model(model_path) + + #### MODEL SIZE (# parameters) + # Get number of parameters + num_params = model.count_params() + + #### MODEL FILE SIZE + model_size_bytes = os.path.getsize(model_path) + model_size_mb = model_size_bytes / (1024 * 1024) + + #### FLOPS + # convert tf.keras model into frozen graph to count FLOPS about operations used at inference + # FLOPS depends on batch size + inputs = [ + tf.TensorSpec([1] + inp.shape[1:], inp.dtype) for inp in model.inputs + ] + real_model = tf.function(model).get_concrete_function(inputs) + frozen_func, _ = convert_variables_to_constants_v2_as_graph(real_model) + + # Calculate FLOPS with tf.profiler + run_meta = tf.compat.v1.RunMetadata() + opts = tf.compat.v1.profiler.ProfileOptionBuilder.float_operation() + flops = tf.compat.v1.profiler.profile( + graph=frozen_func.graph, run_meta=run_meta, cmd="scope", options=opts + ) + + + # Writing to CSV + with open(output_path, 'w', newline='') as file: + writer = csv.writer(file) + + # Write the header + writer.writerow(['model_size', 'file_size', 'flops']) + + # Write the values + writer.writerow([num_params, model_size_mb, flops.total_float_ops]) diff --git a/plugin/GAISSALabel_plugin/gaissaplugin.py b/plugin/GAISSALabel_plugin/gaissaplugin.py new file mode 100644 index 0000000..f3c0cc8 --- /dev/null +++ b/plugin/GAISSALabel_plugin/gaissaplugin.py @@ -0,0 +1,12 @@ +import os +from plugin_interface import PluginInterface +from calculator import calculateH5 + +class PlugIn(PluginInterface): + def generate_output(self, model_path, output_directory, filename): + # Create the full path for the output file + output_path = os.path.join(output_directory, filename + '.csv') + + calculateH5(model_path, output_path) + + print(f"Output file '{filename}' generated in '{output_directory}'") diff --git a/plugin/GAISSALabel_plugin/main_script.py b/plugin/GAISSALabel_plugin/main_script.py new file mode 100644 index 0000000..eee17c1 --- /dev/null +++ b/plugin/GAISSALabel_plugin/main_script.py @@ -0,0 +1,17 @@ +from gaissaplugin import PlugIn + +def main(): + + # Get user input for model path and output directory and filename + model_path = input("Enter the model's file path: ") + output_directory = input("Enter the output directory: ") + filename = input("Enter the filename: ") + + # Instantiate the plugin + plugin = PlugIn() + + # Call the plugin to generate the output + plugin.generate_output(model_path, output_directory, filename) + +if __name__ == "__main__": + main() diff --git a/plugin/GAISSALabel_plugin/plugin_interface.py b/plugin/GAISSALabel_plugin/plugin_interface.py new file mode 100644 index 0000000..34a3b9d --- /dev/null +++ b/plugin/GAISSALabel_plugin/plugin_interface.py @@ -0,0 +1,5 @@ +# plugin_interface.py + +class PluginInterface: + def generate_output(self, output_directory, filename): + raise NotImplementedError("Subclasses must implement this method") diff --git a/plugin/GAISSALabel_plugin/requirements.txt b/plugin/GAISSALabel_plugin/requirements.txt new file mode 100644 index 0000000..66921a1 --- /dev/null +++ b/plugin/GAISSALabel_plugin/requirements.txt @@ -0,0 +1 @@ +tensorflow>=2.0,<3.0 From 313a759144898b5b48e6aa1583f961ef83aaa602 Mon Sep 17 00:00:00 2001 From: "pol.plana" <123639572+pol-33@users.noreply.github.com> Date: Tue, 22 Oct 2024 19:24:52 +0200 Subject: [PATCH 2/5] Plugin servit localment --- frontend/public/GAISSALabel_plugin.zip | Bin 0 -> 3436 bytes frontend/src/components/FileNewExperiment.vue | 2 +- plugin/README.md | 28 ++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 frontend/public/GAISSALabel_plugin.zip create mode 100644 plugin/README.md diff --git a/frontend/public/GAISSALabel_plugin.zip b/frontend/public/GAISSALabel_plugin.zip new file mode 100644 index 0000000000000000000000000000000000000000..6fe3ff209645c0ed29a1cfc9c5798b92f02959c4 GIT binary patch literal 3436 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 M7+9iFA?Vw`0er9Apa1{> literal 0 HcmV?d00001 diff --git a/frontend/src/components/FileNewExperiment.vue b/frontend/src/components/FileNewExperiment.vue index a1ff806..4b6b6ed 100644 --- a/frontend/src/components/FileNewExperiment.vue +++ b/frontend/src/components/FileNewExperiment.vue @@ -63,7 +63,7 @@

{{ $t('GAISSALabel plug-in') }}

{{ $t('We offer you a plug-in that runs on the terminal of your server. It will help you generate a file with the \ configuration parameters of your model. Specifically, it will provide the size of the model, the size of its file and the FLOPS.') }}

-

{{ $t('You can download it through this') }} {{ $t('link') }}.

+

{{ $t('You can download it through this') }} {{ $t('link') }}.

{{ $t('Then, follow these steps:') }}

  1. {{ $t('Decompress the downloaded file') }}

  2. diff --git a/plugin/README.md b/plugin/README.md new file mode 100644 index 0000000..a4aec88 --- /dev/null +++ b/plugin/README.md @@ -0,0 +1,28 @@ +# GAISSALabel Plug-in + +We offer you a plug-in that runs on the terminal of your server. It will help you generate a file with the configuration parameters of your model. Specifically, it will provide the size of the model, the size of its file, and the FLOPS. + + +## Installation and Usage + +1. Decompress the downloaded file. +2. Access your console and navigate to the decompressed folder. +3. Create a Python virtual environment using the command: + ```sh + python -m venv env + ``` +4. Activate the virtual environment: + ```sh + source env/bin/activate + ``` +5. Install the requirements: + ```sh + pip install -r requirements.txt + ``` +6. Run the script and follow the instructions of the plug-in: + ```sh + python main_script.py + ``` + +## Updating the GAISSALabel Plug-in +If the GAISSALabel Plug-in is modified, ensure that the new version of the ZIP file is copied to the public folder of the frontend Vue project with the name "GAISSALabel_plugin.zip", so users can access the updated plug-in through the download link. From 5b3606b328fd308d8fd44a85c72fa510819b42ac Mon Sep 17 00:00:00 2001 From: "pol.plana" <123639572+pol-33@users.noreply.github.com> Date: Sat, 26 Oct 2024 12:00:31 +0200 Subject: [PATCH 3/5] Plugin PyTorch compatibility --- backend/requirements.txt | 2 +- plugin/GAISSALabel_plugin.zip | Bin 3436 -> 5994 bytes plugin/GAISSALabel_plugin/calculator.py | 39 ++++++++++++++++++++- plugin/GAISSALabel_plugin/gaissaplugin.py | 20 ++++++++--- plugin/GAISSALabel_plugin/requirements.txt | 2 ++ 5 files changed, 57 insertions(+), 6 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 33dec46..a0db1ed 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -2,7 +2,7 @@ absl-py==2.0.0 arrow==1.3.0 asgiref==3.7.2 astunparse==1.6.3 -backports.zoneinfo==0.2.1 +backports.zoneinfo==0.2.1;python_version<"3.9" cachetools==5.3.2 certifi==2023.5.7 charset-normalizer==3.2.0 diff --git a/plugin/GAISSALabel_plugin.zip b/plugin/GAISSALabel_plugin.zip index 6fe3ff209645c0ed29a1cfc9c5798b92f02959c4..e67a72fc36d845c3ceed033f6f4cf4bbad307a2c 100644 GIT binary patch literal 5994 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 delta 2111 zcmZ8i3pkW%8~$d-c?RP!Ce4V@me7n9p;&Z4m_`nX4AR8ff2fS&k{!qN+x&yiAzOnq zqt%YXNL!1wO;n6yTrF~}5F#QW7yj>?R_ME~`+KkVdY}7!-|Knq_kPCrOl(!4I-(?0 z0r(>&kv!8BcImxy=g}u1e1Z@jfd&u~a|i$s2Ym^a0c3#hp)2e~+^^aqk@e7v+d(cA104?oW=c>TTmvJf@m?e_A*?WJlO`Tda0^ z&|Fl9FP*L~sGVGqKkRZ5dx>?GHI`6PEzeRMElU$Hopv&Z8C|6OgBAsb8XdAek+X&L zhYMt4_qoK=1{xg=Y|2TO75OOIKbEVdHNLC*$umhtuLjSyJ?o6~L(TJ3czr)hm91z$ z3fR6>Y4_pen+SNrViGdB+|UZ3I!em`_jsjFa51(3&>SwD(poXZC4_zv=_q3iTnv)O z7l1+uJzD_*8^3_FZUS6iX+4TTnO#Ycu*t!ZeMaGZq-D@oADNlJWC-guwslE3v9>J^ z>_?F>jBExyyO2T0<}>J^x`ZwXDW=~F$SlG`k+@CtxU6-0lOzCW0a{>;vMT7Os?2(# z6hdFaH>yc-8~CY*jQzRQ_k4xodDAz=^eDX{x=$6(%PUJDw8bVzmpC&V?B6DQDjjer z4+!LuZHRrPQ&xQ(w+BbOk(0;k`$9bI(x~Q)#v@ZU7Wo%Ey!t2=-6~#V?OTWN2zvAY+YmudL^ezfR9@x>sARJH1GU7W@_sUFHpuMh&$j&}Oe9!_`5IlKY6m2 z$rp3(T({JYTvmF=vVA$38ZP$%k$#W;Hg8a4;cvb8cRfoZTa4I zyc>30!5~TJNl>bHiAhkckz3g9{4mcL-TxUpFAxciVf)Z~f0L8;5_%k`#qQjCAovMO zV^*3b{hTy1V~lAR`Q`FkO{e>-=q2e=oq_lpd#_4b5>8nc72_8>PgrS7RX8trWu$D8 ziWN3ehI5(xvB%k6iryiA-g@nKjV$OAC=0XV{4!QGyUsLOeFXL-eVF|HUTM)x-L)6= zzWfya{v8o@XNGRR%ZkdIY$?~|R0f2zwmW>6#xcDWV@E@|eZuaWf2uj|cw(QV{^FIR z%1Q6%%=jjusJRPH=c1}p%W@*Bt`xOlDC-V+pw*T7Ff=%^aq;piUsCJr>qlX&o|k{hUb){`kQyAp zuF(jvmAH%DopE>|&Zv^zv2?~#GjwZUZWPyL8h10a-@3n{@Zh}Z%tA8vS?B(g;s$$_ z*7mjo&mvcl@QZoSO(SxU000Yn{lye!tV_NgdZ*g|O5Rsam1VCGLU)7!kKaf>oLUu9 zOUCrh;SO2YAHjtB$T7#;ofz-z zSw@(3`}|+$)o*9X2@PgzuTAZ)PR*>i>zNbHuSgzzs~;c|WsEd)RE{B=Sp?KwgbDGv zKR2^Kn|M@Bwm8K9BkHA9{pDbP^^fuY{cW_1C&@6dFi*$yCchYww9-x|4ynZL`RB1N z@>eHHeSry@ufK0OXP)B1bnT3ed{ei2#~)qoI@Uz^)L45E^P0_eVqYnq!0LtE+P73? zGB_~Tl36M%??-gbwe(pmRP_G=&Rfg_HhLJciF&YEK^+9;zn8&4`H+KfuUTFm0X|SX zC}Y88(9I!$NGwkQfmB7U_a`u0$rQ7(L4jCRf)?D2Hd-SQ@|v}e8|wmqEM*tVhWJZc{p$Zh1=|xFcbE~jnaWUaqXf2 zH`W{_W*4N}A#M0WpJR~J%LOR22)EUeK6L8y*Inv_w5_$aBe2do@ kYTJ+#GUBy=2.0,<3.0 +torch>=2.0.0 +fvcore>=0.1.5 \ No newline at end of file From 35990debf680622f79d5076fb69873147f64eed4 Mon Sep 17 00:00:00 2001 From: "pol.plana" <123639572+pol-33@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:58:57 +0100 Subject: [PATCH 4/5] Plugin tf SavedModel compatibility --- frontend/public/GAISSALabel_plugin.zip | Bin 3436 -> 6501 bytes plugin/GAISSALabel_plugin.zip | Bin 5994 -> 6501 bytes plugin/GAISSALabel_plugin/calculator.py | 52 ++++++++++++++++++++++ plugin/GAISSALabel_plugin/gaissaplugin.py | 10 ++++- 4 files changed, 61 insertions(+), 1 deletion(-) diff --git a/frontend/public/GAISSALabel_plugin.zip b/frontend/public/GAISSALabel_plugin.zip index 6fe3ff209645c0ed29a1cfc9c5798b92f02959c4..95e30321b2a18bc8c94c958b081f7d9c4cbfd0ef 100644 GIT binary patch literal 6501 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 aX!mnZ5Hcygbp?SA;s09k+aiPk`0qdAB2dWy delta 2117 zcmZ8i3piA17(Qk&E`woAgBjV-mXNV>Ef!ter;$q<8KjBT4#g0U?Btf#W(UV5n?ah< zYTZWKTC8oNVqD{Ck!yu0A`p>~5{MZan$~6d$1oi;xCHMCU{RU@hr$vIHOjd zvLeS>Dqdc-awHw$)F%_L-GF!#2R#0o%`?C*?k#9V3i(QIe#Omwc){ zv#^`9>ePtw0j{kChKP6o@-=ZtrUIXVX89gr_$h>BsyuT=0NVCZpDsg*czpAyJOLm`X;r(UiV3!qP-D9@ec1E|)BdC@)(1IXoXqS0NxXbT{ej<( zr7D~ECtgLs1xxf0Nfo*l0L1|%0o>u0Il^Qp0nl%lIQexl)+mH-5ot&RG)#t``{w`! zqFUB`0w!(&XW0z6y!ht9C8Wvacu}it9LZ}8u7i@0zVg7t5C%iB!LhY-{PFd&IB)=| zhh}6k=vjpfIwqe%2bD!NNr*N04Zn;cJd}ys0*}qyfH#W)z&FqZ3S_Zhj+g@Lk$ez+ zJ-(7nvg_d4UJ~Y~Ht+M5a_5a+mC&QKhUs3_I4U)hFR;cWMVC4;>}+4he=HlctMK#Z zk*tXQWm6XY9M^kCJQ0(}8v29WZBi+wjHV+~R%ZDj?$myAWe=7*Ug3`KHW`ak(UoS& zyO#B}7`RdCybRrUccXfDcfqoG;ylu#CyrlsX+v$4eiv0y<9BY{kK3P?eh4O zMv+~%52y0L6q=Hqn^cuXr!!_7-e3qW1ggWQh4^Q zYv$^a%kpno*3TzX!ld4dq}^e^&Kpu)_(v=5ZSPW|8>_f>rf<4?sMhDMx=ddO-WBsk zRwq&8Q9z1ksbN5!zH8{s{7{cen!oBiEfDgLV)~``{Vs)~3fzy;Vs@z<2zEWEWnNfL@trcpVD!(w+4!dttIYu`w+0c-#A2G)BkJa8d95)uzUc79tkoa!S zq}VVRId^@yz3^Pk2zTF!b}nkP$+u3<$y4X($yVi~$J)Bs%^kC{0s6}erU`?87E;YW z6;+>HmJ(7l#VL)$nYT!TZ7!7i!GQ@)ix*#b>$T0kd=T2^aq(={%H5`dl(P}+T2()5 z(c73k>4yhn^{d#OOQ+4%f>r!;qqxq~xSZet%YnwigY!l+3rXB3UHg+u8f~#{9qk96 zM6Mv09N+Kkts~y(0l`QP}SEpPeLoQY-NM!4p6}JSDFu_R0q|O(0y~b zLuR%|(7|3(%r_m5jcQ7n=z0@ zwBIIK66E^<`P`!6VxX_`hq#}AAM56cF?7sK)6jiM&ql>8)YFK=*x0@QKGa0~=16WR zFqAIVHeSx2Cp$A;x}qar)vw<2m9B9aZzg8BB;atXtO&Kp^aZ3+!$x*5waddFhx;j%^cS| z7L45iV>dhCt}R#;0svz~)l~K#a`ARy28YnyTx9^%R)>Wa0Gs7zAJo`VgbyiY&HI9I zxUDVbJrkbS{y40-jV=AGxDD(f@h@0Nf9TEngRvkB uza5c{0`u@X|I+}yR|9`kQW2ey_=4mp5jW_tRL0A~9VY}@)37A`o&Nw6*GoMB diff --git a/plugin/GAISSALabel_plugin.zip b/plugin/GAISSALabel_plugin.zip index e67a72fc36d845c3ceed033f6f4cf4bbad307a2c..95e30321b2a18bc8c94c958b081f7d9c4cbfd0ef 100644 GIT binary patch delta 2679 zcmZ8j2{aU38y;gYU&b=b*kVFO%#dA{UnScVLin0&!-(v%hs^L9WC@MY*w?aCDKe3z zBxK3HC-EWM2r-D?^sWDY@44r_%X9B}?m6#!p69FVoI+9>bN&>9)C594ZSw>EIhQ8M zLRm?k%mu*41`;pmFaB&KrU9h!}gh632Aj&*d51pf7(_1$$Anm*=Ki zGMZetOnq~(*DY3(k>%Gu^n#ard}eNfem7cbh-}VUcwcldqoAchNcOq;9jV$TCCdJp zUwtNzCwSF4sN3Q@;~xs`KQ?=YdU}bivn&gPhR(-U&@D^H&ygM8kkRpmv?3Klilwn) zt$isr?!i)XsiPvAVw@UlQ8r{<(nr3Q?qyaIgwi>=QlBzdQck=hb-k{isHNT!#3_aB zr#eO*Zi+uqk%TLjfgL?c$3`A{2ZMG-FqEx{B@b}oGCmy_I{mGyteTzDc(4MAz!eLq zxxMVmvjU#?Va~Tb`x2P8{rifN@u>iV0%_z4T%_e*^R&rF`cj-?Sw*$N$5zQ~R6rC7 zR)SNIxAnR7g}H3Irkp=v=yi-Fccx~RX7n22^)6qgUHu)6ZBM$NJ^5uRjR_fzrA0%^>aA z$jIJ4hl^tAR>zE*LoAi^XKGj5GGa4#^JF_9Y*0}OdQ6?>tT<-dPuO`@$);TMuA7eozt#ftQ}t?jZX(p zWMKw0CD4=Xy56C_iL)F?x5~AL6Q51-N}$;Hk0ez3urkW+{e{kiGT)ldqjLyrPMWfh zr0P>=*MQS3+c6;!{+Jg-hJj`iPrnrdDiN`|rhHDSgay`!nFlM}*S~DfZ*;Qns>v}K zp?KduxGb*M^)9`PR_dQ%k3HygHmF0+_+>@zdW8bZF)m3J% z$JR3IE48g2PijZZr?@w~7YNN%zth}C(*jbXF(FYQlm*3^#`&^vF%QwoCo;;&Wmrv2 z5?E11Tnm!W3N?CcXrg3xKY>VGw!bA*x&(IWejyRKmdDG!AT(?kLW#u-gWax1ELdTD z+z3X*H9wsp`?hS3P0dW3MLH02#eteVciZqvB0CpLOaC(Vdy)@Ze`?rGWuf~B+7o21 zZDvnoCArfdC*oxHCIUBxu^_WJ31;Al>t_Rh^Y%aUBc^yVyc?a-+8}U{uw`18 zv9XufS!|QzYP^2n5_>)Obf zJVysip#3vQhf=D@iMP2ZPc_hYPS1W3v6ErNC5l%~4tyHL{C4Y;yP&29_h6rj7B>6& zN$t~)y4a8yjBh&r?K6@=bl|QW{nD>o3#-$I+LbK@;Z42GG0t`e@^j>H#XVhEqFj)P z0)4?yO6d_3yp-FDc5UakLp60J$4C<;*BcpCzQg-^lu+IS7LzM%UlSBKjJM$iqdlI|joWO(C4G9t}qPKOI^zH>ygJgH3KA zJ-t8j{BrN=Cnp|$J-ZpJ;{y$RXTE>R22-Kw&D>s6$)c3|CA;) z*s|lj?`S7Y| zV7EMtInZpZy93QZCH{E9=|VHslHg2Ruo$_RUQwVtPFOPbQpk7L_JV&izHWSI`g%*Y z-a^4UwHjrmuRXVZb!08!U8hctAXRTin#{5HaK3{zwbjx_!=o0rokPbr?V~RrrhoS^ zlq}TW5jS^E4D1$c>+c!cR*}{)9gqn-h}aZD*E#ipl33?1oRqI0Gwm)ObSM$7z5!d* z=Bp@hT9^3YJ!Fe*ln}e?SiL!H4$gAd-A;y%c`=gEzHHD52?PKbsrElfNGgY1V*e}G z{_sZ(>tt1p=O||SmzT1tuHrKLd!t$w%Jav3j c;!^yH`OJp^=JFi9df_KRhhLO6f|tSRzkm_d%m4rY delta 2189 zcmZ8i3pms310Gv*-53^WuBGL+N+^^&iQ_J8bJ<}`luI#nT-IV0xwcT|l28=J})RdCI#40$D89^24!z4t(J-N+8F^5n{B%$#WXUii%hqIdVQ3$ddaUSS+mMW~h1 z-0kTdskeWHO?&ctFE+4V^NlNo?y~o-fu8q@` z4HL45aS#oK7}$ykBov;qEPEIj`Qh)?ug|mC`Zs#?zNK(i zaebIf!#c?UhCj6jO06}g=(yQjv=IXFXbs7D4{ZJG~~ zb=$Xnu^9X2Vs&if7^lwUb= zFv_6AO)p}$AAw0pkJl{!s2^tzIjkSO&TNG<3>UD;IQM+g?h`AmhBeyRbDzzfLzrC_ zVUO2X22lhNCVqP4FE#mQ&R}A9yrg*nXY_=2wfocL*JX!3I51yT^!TIj7T#CqQT@J# zEONbFpeOU?)1fRs)j^u=!q;x^kc8Emsi>ngOUWK)m$5K0s3C6H=}b~uQuMok;#Vc1 zNCVXutFn`%KX3KCzptFm?wqW9o`W9k&5bsR&2JA&-j33*C+$&+kD{TD;!Q1gwA$cm ze0M5``<^Bb`@yhF_YQg-$%|oFu?x`*`>(1DsUk#z1*q2Qf2x`mBH+0jNY2YCzia5F z=IZPVl;;zZGh4ci+@s5U>klnD>!>An=IqkzciQur^k`t{MWV-ogp#)A1Iwx;rIAsH z8&PvhyjerqfUDhoUu2bxdLq4V((a3qiszV~Gp&DX=Gl+8h`O~2flT3>_VD$W5tPv6 zXWvw$n}p3fT27gaVzmlRiq|tc=`y#k82Mms!dnF=G)(JMV0C|Wo_4by8eDc)qlDna9%i1w$23%>Yfw~?>v*uNH{A1v)2R{V0z$^S;cg8l`q zgz0Bv9{8d_zX8Z`TbyH+Zk>X|DJM1|@yQsWiZm(`6s#A+nZ}a_I9<9u0EQCmk>zoA zjDuO>12hUr%{tdq#E8%B46F{?Q#aT!TzJ9IE1F#5xbDw|I_?7dJ8mP7vs}rQWKE8R z_=)nRl7KthEEiBI5XQJ_%_xClj7mcf`S>(@R?P|rqIQSJz-osXc7;M*k*JR-5DS)T?Q?{_mWA`8;5 z6W(us7F#Hg55^w6VSS|WnRq*t9OHIUpyjyJG55r(bF8A^l83n+g`z>F=Gv=Cy9zWL zPuu898YU8*L{;T5wg)iQX`nn6!doUME!X8Sed%^)t}j%CelDxdgmDPl8J|u@bXBP2 zX>~}vs}U%cmLx4Yn$D?ts~296+LbYPb3!U=iqzc~;Z8ho!rA}OG zVQ_XA9@Rn|Y4Zr5C6)R>6}^8$gWsFc0OkX>mw*McviFnXk$pDW!r+SiM}||1GYxy& zqdO*(jfd~z>9OIu8TfZiYmNJ{yTi34rWJi;!;)ub8%V4i*&4)bM)rKlzKHhD8y$*7 zt|6ug(ug8bVFA+MyBVC0Q&;S2ta9FJY&)pwSwP=Ww6tO}?`S>MZDD+QroY7FtX5ZR z>P+G%;c<%m;#-5Mm3i87LaNR!SgQYy@=vN)OFT=)@-OZ>S6>alBz=0FDrR4~b Date: Mon, 28 Oct 2024 14:25:57 +0100 Subject: [PATCH 5/5] Minor plugin improvements Functions refatoring Default values for output and output filename Missing package added Other minor issues --- frontend/public/GAISSALabel_plugin.zip | Bin 6501 -> 6737 bytes plugin/GAISSALabel_plugin.zip | Bin 6501 -> 6737 bytes plugin/GAISSALabel_plugin/calculator.py | 35 ++++++++++----------- plugin/GAISSALabel_plugin/gaissaplugin.py | 32 ++++++++++--------- plugin/GAISSALabel_plugin/main_script.py | 10 ++++-- plugin/GAISSALabel_plugin/requirements.txt | 1 + 6 files changed, 43 insertions(+), 35 deletions(-) diff --git a/frontend/public/GAISSALabel_plugin.zip b/frontend/public/GAISSALabel_plugin.zip index 95e30321b2a18bc8c94c958b081f7d9c4cbfd0ef..5979528fd3082ca00cd5a6837acb4d40dbbc47c0 100644 GIT binary patch delta 3474 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.0,<3.0 torch>=2.0.0 +torchvision>=0.15.1 fvcore>=0.1.5 \ No newline at end of file