From 8713821e223b66fa255fe6211697673df8434f84 Mon Sep 17 00:00:00 2001 From: allierc Date: Wed, 12 Jun 2024 18:16:41 -0400 Subject: [PATCH] update tracking --- .gitignore | 1 + GNN_particles_Ntype.py | 2 +- config/arbitrary_3_tracking.yaml | 55 +++++++++++++ hall_of_fame_2024-06-12_131801.203.csv | 4 - hall_of_fame_2024-06-12_131801.203.csv.bkup | 4 - hall_of_fame_2024-06-12_131801.203.pkl | Bin 2730 -> 0 bytes hall_of_fame_2024-06-12_132058.813.csv | 6 -- hall_of_fame_2024-06-12_132058.813.csv.bkup | 6 -- hall_of_fame_2024-06-12_132058.813.pkl | Bin 87052 -> 0 bytes hall_of_fame_2024-06-12_132813.045.csv | 9 -- hall_of_fame_2024-06-12_132813.045.csv.bkup | 9 -- hall_of_fame_2024-06-12_132813.045.pkl | Bin 2730 -> 0 bytes hall_of_fame_2024-06-12_133248.406.csv | 7 -- hall_of_fame_2024-06-12_133248.406.csv.bkup | 7 -- hall_of_fame_2024-06-12_133248.406.pkl | Bin 2730 -> 0 bytes hall_of_fame_2024-06-12_133530.033.csv | 0 hall_of_fame_2024-06-12_133530.033.csv.bkup | 10 --- hall_of_fame_2024-06-12_133530.033.pkl | Bin 2730 -> 0 bytes hall_of_fame_2024-06-12_133828.466.pkl | Bin 2749 -> 0 bytes hall_of_fame_2024-06-12_133901.030.csv | 7 -- hall_of_fame_2024-06-12_133901.030.csv.bkup | 0 hall_of_fame_2024-06-12_133901.030.pkl | Bin 2763 -> 0 bytes hall_of_fame_2024-06-12_134405.912.csv | 8 -- hall_of_fame_2024-06-12_134405.912.csv.bkup | 8 -- hall_of_fame_2024-06-12_134405.912.pkl | Bin 2763 -> 0 bytes hall_of_fame_2024-06-12_134611.221.csv | 7 -- hall_of_fame_2024-06-12_134611.221.csv.bkup | 7 -- hall_of_fame_2024-06-12_134611.221.pkl | Bin 2763 -> 0 bytes hall_of_fame_2024-06-12_134928.940.csv | 0 hall_of_fame_2024-06-12_134928.940.csv.bkup | 7 -- hall_of_fame_2024-06-12_134928.940.pkl | Bin 2763 -> 0 bytes hall_of_fame_2024-06-12_135115.739.csv | 10 --- hall_of_fame_2024-06-12_135115.739.csv.bkup | 10 --- hall_of_fame_2024-06-12_135115.739.pkl | Bin 147319 -> 0 bytes src/ParticleGraph/models/graph_trainer.py | 87 +++++++++++++------- src/ParticleGraph/utils.py | 4 +- 36 files changed, 116 insertions(+), 159 deletions(-) create mode 100644 config/arbitrary_3_tracking.yaml delete mode 100644 hall_of_fame_2024-06-12_131801.203.csv delete mode 100644 hall_of_fame_2024-06-12_131801.203.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_131801.203.pkl delete mode 100644 hall_of_fame_2024-06-12_132058.813.csv delete mode 100644 hall_of_fame_2024-06-12_132058.813.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_132058.813.pkl delete mode 100644 hall_of_fame_2024-06-12_132813.045.csv delete mode 100644 hall_of_fame_2024-06-12_132813.045.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_132813.045.pkl delete mode 100644 hall_of_fame_2024-06-12_133248.406.csv delete mode 100644 hall_of_fame_2024-06-12_133248.406.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_133248.406.pkl delete mode 100644 hall_of_fame_2024-06-12_133530.033.csv delete mode 100644 hall_of_fame_2024-06-12_133530.033.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_133530.033.pkl delete mode 100644 hall_of_fame_2024-06-12_133828.466.pkl delete mode 100644 hall_of_fame_2024-06-12_133901.030.csv delete mode 100644 hall_of_fame_2024-06-12_133901.030.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_133901.030.pkl delete mode 100644 hall_of_fame_2024-06-12_134405.912.csv delete mode 100644 hall_of_fame_2024-06-12_134405.912.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_134405.912.pkl delete mode 100644 hall_of_fame_2024-06-12_134611.221.csv delete mode 100644 hall_of_fame_2024-06-12_134611.221.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_134611.221.pkl delete mode 100644 hall_of_fame_2024-06-12_134928.940.csv delete mode 100644 hall_of_fame_2024-06-12_134928.940.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_134928.940.pkl delete mode 100644 hall_of_fame_2024-06-12_135115.739.csv delete mode 100644 hall_of_fame_2024-06-12_135115.739.csv.bkup delete mode 100644 hall_of_fame_2024-06-12_135115.739.pkl diff --git a/.gitignore b/.gitignore index 17789bc5..ffa7d224 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ archive/*/* *.ijm *.svg *.npz +*.csv # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/GNN_particles_Ntype.py b/GNN_particles_Ntype.py index 7fbc8feb..4f802426 100644 --- a/GNN_particles_Ntype.py +++ b/GNN_particles_Ntype.py @@ -45,7 +45,7 @@ # config_list = ['boids_64_256'] # config_list = ['boids_16_256_test_cell_division_c'] # config_list = ['boids_16_256_division_death_model_2'] - config_list = ['arbitrary_3_no_tracking'] + config_list = ['arbitrary_3_tracking'] # config_list = ['arbitrary_64'] seed_list = np.arange(10) diff --git a/config/arbitrary_3_tracking.yaml b/config/arbitrary_3_tracking.yaml new file mode 100644 index 00000000..90862302 --- /dev/null +++ b/config/arbitrary_3_tracking.yaml @@ -0,0 +1,55 @@ +description: 'attraction-repulsion with 3 types particles' +dataset: 'arbitrary_3' + +simulation: + params: [[1.6233, 1.0413, 1.6012, 1.5615], [1.7667, 1.8308, 1.0855, 1.9055], [1.7226, 1.7850, 1.0584, 1.8579]] + min_radius: 0 + max_radius: 0.075 + n_particles: 4800 + n_particle_types: 3 + n_interactions: 3 + n_frames: 250 + sigma: 0.005 + delta_t: 0.1 + dpos_init: 0 + boundary: 'periodic' + +graph_model: + particle_model_name: 'PDE_A' + mesh_model_name: '' + prediction: 'first_derivative' + input_size: 5 + output_size: 3 + hidden_dim: 128 + n_mp_layers: 5 + aggr_type: 'mean' + embedding_dim: 2 + update_type: 'none' + +plotting: + colormap: 'tab10' + arrow_length: 2 + +training: + n_epochs: 10 + has_no_tracking: True + batch_size: 1 + small_init_batch_size: True + n_runs: 2 + sparsity: 'replace_embedding_function' + cluster_method: 'distance_plot' + data_augmentation: True + data_augmentation_loop: 10 + fix_cluster_embedding: True + learning_rate_start: 1.0E-4 + learning_rate_end: 5.0E-5 + learning_rate_embedding_start: 1.0E-4 + learning_rate_embedding_end: 1.0E-4 + device: 'auto' + coeff_loss1: 1 + coeff_loss2: 1 + + + + + diff --git a/hall_of_fame_2024-06-12_131801.203.csv b/hall_of_fame_2024-06-12_131801.203.csv deleted file mode 100644 index b2004075..00000000 --- a/hall_of_fame_2024-06-12_131801.203.csv +++ /dev/null @@ -1,4 +0,0 @@ -Complexity,Loss,Equation -1,2.0800021e-10,"5.4415034e-7" -3,1.4013397e-10,"-0.00031639574 * x0" -5,1.01693605e-10,"(-0.0015618574 + x2) * x0" diff --git a/hall_of_fame_2024-06-12_131801.203.csv.bkup b/hall_of_fame_2024-06-12_131801.203.csv.bkup deleted file mode 100644 index b2004075..00000000 --- a/hall_of_fame_2024-06-12_131801.203.csv.bkup +++ /dev/null @@ -1,4 +0,0 @@ -Complexity,Loss,Equation -1,2.0800021e-10,"5.4415034e-7" -3,1.4013397e-10,"-0.00031639574 * x0" -5,1.01693605e-10,"(-0.0015618574 + x2) * x0" diff --git a/hall_of_fame_2024-06-12_131801.203.pkl b/hall_of_fame_2024-06-12_131801.203.pkl deleted file mode 100644 index 39b05b0585caa79f2736807a3eef6cd7705b573e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2730 zcmb7GJ!~9B6uz_L`0i}y?AT6Xh@#L$31G)|q9jNl2P|R45)%?3(L|HE-8t{r`5FHdCBpQ%tC}=1tK|%@=5-2p3{7CT4?%w(AfCMYu?e2STX5M?> zd*9nv_PzC9qmo~GFv+Btk;3Sa%h}Z{SJ;YRQpUpEHm6=SFPW3N8O9z9h-3kC6^|pM zYt(g9LEX&g(H4)W$Vi+pK~*fIxrQax2aT>igx|Dbx|!Z%p@(_2esc5F@yCwOo!&H5 z4@F$r4Y0j5mmaR_p(IYypcFVw-Q0O6lHX*;c|cD_ZsrC|5}ZxC>&>MTeR?pYn}wOD zYk2lpqI|Qghg=+>1m%&Ecs&>~shCH4r3l%t+qnDTqj9Q!-KqEu+=rZM>JM4ah(f!ZabJi=>solcx0JH1H5xm;}6SMRgbuwoZfGQ^i9T zr;6|hNWfpuN+%c>~>sdmM?QAT!%~Bt;l)!EU4skegfj{#^o_6BVZ-qBdrz@1q_~6klhg z>kpAG4S2L-mM)$xD}R6niBI9^=WpBV9bKnU#0slz-P~Y&#aD!S9*NKZu={!G(NZsHB)PP1nXh&{@tx( zpFQ`B-iL08j5DmK%AV@D-c6|WV7wz0ga#|I;K~n;-uJ|lOIJ;=GJ?a33S0YqdZM#v zPrzT6M|br-e1wHHJr0Uesc3Z);esmR@~0Nn-@em_cFK2$X9l*xX^P0S+ z8~Jm|wKd&nQ>jSKw`j-#8%vCb{jD@aXn3k8g1Ovwxp9u`CVCsBKxnFBkGI<}7%nOf zWQE!`PDPJ+=noO{h)cy?STrm#TD?$qL)29(mbRk6ETd`S*`C-DBDh4@0D2A{&^06@ zpJ2AGKp17hdB70gLB+y^?3QlpK`ZsR&CO`pv{ur_8e1s)i<9Be82C2<1+Rja+p!3# zb#uHF0#MiA5l^s9j2R-cFv*boBmo{dj~8;gMUS+!F81h=4|*($!QuAsV*Zjf(q;L<3`-!D&A72(GkKX%At(m;Fad7)P)uEgp^r_h zq0xhpSD4%eSX*YX+A?pLE9RtAb^5oAAL;>5WeKxO`uGL2eXG#+>*}Lsd3pKizi{P$ zPDPp4_TrHaZ&b^NzVdFM*5j*bz>%+<_%NXv4Q)h|h1j+oe1y8AsJ%c^d^6->*Rr1H z5==xqm{8>hyk&I#GU{maGG48>)ze1zt1vNo2>%y+mOX;P%7fDfI{73Per$5Wr$J!H zV;jST%+JoBot`~6JvUG0&dgnyotv4TJu~CVb)ygOUWt?{45Qq?1E9VVGdrp*Zc`qY zV79EIAa-`iT)%)$NqxK8V$Fk?=cd+qq z0vV^~>~m@`U#x8cf?52`>p<3j_rI9W{Xg^hjyba^kCl1o4fjnw37*~{33u0!a&SOo Ldxe>;&K+eod#9BV`A1tQVQ^BSQ&OT% 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
|;h~75uTJ~hxB)Q+5F&gvMY+5 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 J(L1R<`#0{NHrfCH diff --git a/hall_of_fame_2024-06-12_133248.406.csv b/hall_of_fame_2024-06-12_133248.406.csv deleted file mode 100644 index ca42d05f..00000000 --- a/hall_of_fame_2024-06-12_133248.406.csv +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.4983,"71.1354 * x0" -5,3394.9043,"(71.1354 - x2) * x0" -7,3348.994,"(71.1354 - (x2 + x2)) * x0" -9,3324.5798,"x0 * ((78.41283 - x2) + (-0.6941743 - x2))" -10,3283.961,"((inv(x2) - x2) + (78.41283 - x2)) * x0" diff --git a/hall_of_fame_2024-06-12_133248.406.csv.bkup b/hall_of_fame_2024-06-12_133248.406.csv.bkup deleted file mode 100644 index ca42d05f..00000000 --- a/hall_of_fame_2024-06-12_133248.406.csv.bkup +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.4983,"71.1354 * x0" -5,3394.9043,"(71.1354 - x2) * x0" -7,3348.994,"(71.1354 - (x2 + x2)) * x0" -9,3324.5798,"x0 * ((78.41283 - x2) + (-0.6941743 - x2))" -10,3283.961,"((inv(x2) - x2) + (78.41283 - x2)) * x0" diff --git a/hall_of_fame_2024-06-12_133248.406.pkl b/hall_of_fame_2024-06-12_133248.406.pkl deleted file mode 100644 index 676a6a594ea2fc37160bf747bf6d252f92b72300..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2730 zcmb7GO>7%Q6tXD8Xe&dw&@ z3J@R#8fi{+H~^WOX3 z`<`DNeEa=+DSOm#l*VE<7Fvy6POo0M!qx?g<51|^`pj$kWqn#T{Lo<@iJ8Z2$-_Xa zDz)uIP&?IXyu|}5QW8c?P#KC?U&EI2Lt2#|#%D$|)kyBKP@_E9I^8*Q^6``NXFHmz zk$_8c0FICKrANwYBnqR%D+E?UHTK>~%x^MnJ*cJvJGDI)6WmRD`}L($6*cVBPHyI? zD%K8*q^sA|h>Z)RpgfQS$e2RnN>cxZHo#{TR_3+Y7rHPAPiEyy1a4j$Gaz1X4C@?Tn}PE zOTE5K12qVwiS$Iz0_ViJjk%75ftTuCHI^WZwqQ3B2FUd-b^ktr$%zaT5l|B|)b~+` zMv`wa(({MJHuZS0u2(NE6_r0ky~w3-^ow`Q^RBAVAYi%Gu4-&EzV1pw9ft&H0NDMq z`bqQVou}22LdAoa30Y__Hrv_L)1qgXWZk`gE@ltF&yRINXr!BYwEWGT>|}McQ2L3a z*xF4yuKw`0{Bq-!KMq=SyABpVz%`trn#CFMHjQ#jO{we!IbP@m4V=)=I;q?XwpV?t z%hy|%zWwc^zj~?=3C+w`^YoQUYRVQUsc;M37m2V%Tiin};jT}Ay8guO`DfM9c$1^f zO*BBCv?=!zunQ2X`FuTZcf5?bD8GKeL>uIiZ4oT;sLdQ4dj7kgkH7x$*J|n>CBc3e zd~kQ?fzO}+RSlvW0&R_|>7u8)uJ;mZJecfC1)<)0D7bWetp=ZbYW1q_R|arcQekSp zqMF@J2Lk@8xVoqB<0EXWs!33kOhl`j2pd!hmp?P8{{Fo>x>vq?JWCKn{a;iOHfML< z-BCkGzKvU&>ad@95`hRt9aCAL728X|Z~|l#&~+vtI_5G|h9O6S^2-RNl}ezprmFDI z&T8_Os%PthYpbf>rm-X$-=ZOhOe`T5hgyk`(6FjSg4x`3xwcNK26`K$KxiUEhqv1> z7|kmVWQE$+R!NOH=nvuZfX9;Cu&5hiG2taLjPuyf3j2RNAev~5lQ3O0P9?#|Gh(2jyouAPsA9h#}g2T<_`TQlD zq|GSOZwPll)w{vO1nv(7WBHG0z;*TkDdV^{*Ibk+_9o6X9E3PCZzM+tDthGJq% z41FA847C~#oZRF#z}nF(<(7U^U(u(nvNf=yU0)43GL4woQsEc$?yX!qpvsTwwY9Zp z{>GDiStY4kyDP`LyiqO|mEu=JttK}Tk0W0h@nJ$U>YIqBaC{Gl5=nwZTH3gpDCK0zc Qk#cZAV0wk<-J~`957b*WNB{r; diff --git a/hall_of_fame_2024-06-12_133530.033.csv b/hall_of_fame_2024-06-12_133530.033.csv deleted file mode 100644 index e69de29b..00000000 diff --git a/hall_of_fame_2024-06-12_133530.033.csv.bkup b/hall_of_fame_2024-06-12_133530.033.csv.bkup deleted file mode 100644 index b54f73f8..00000000 --- a/hall_of_fame_2024-06-12_133530.033.csv.bkup +++ /dev/null @@ -1,10 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.5107,"71.02963 * x0" -5,3388.2783,"(73.63358 - x2) * x0" -7,3327.6987,"(74.00429 - (x2 + x2)) * x0" -9,3323.2974,"((74.00429 + 1.3918438) - (x2 + x2)) * x0" -10,3322.5715,"((74.00429 + inv(0.39730513)) - (x2 + x2)) * x0" -11,3250.4316,"(x0 * 74.00429) - ((x2 + x2) * (x0 + x0))" -13,3235.073,"(x0 * (74.00429 + 1.1196562)) - ((x2 + x2) * (x0 + x0))" -15,3232.9202,"((x0 * 74.00429) + (x0 * 1.2928978)) - ((x2 + x2) * (x0 + x0))" diff --git a/hall_of_fame_2024-06-12_133530.033.pkl b/hall_of_fame_2024-06-12_133530.033.pkl deleted file mode 100644 index 5832732d436056f8a463041ed8c0916e43836a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2730 zcmb7GOKcoP5Z(1B-d)>SJGPS;q9|NY0@(2h7v~ zRj>B-fpV(%WO@sB#DH+rBA(~U)3j7Gl*Q~lZ5%qkvs~u zs!_*D1$8p5#%vx^k&!57g33rF`YN_mAJMA%C_Xcqsb+egg&N`E=E?S{6HlI)Ki$?; z4ToHs18{tzFFsaP!*LX+ekrh;s=5145`Kee>mfB2I+^3Mgy3${-LEg+?N>tqZ5L*) zs$uQ2SbBO@4Li6%3d%#7;Pp_*63JZBD@Dj&-NfAwAGKBW>Q=>TSbg5G)t7n=qn^&C zeUMfP>F{2uv8|-ubRn&jCm7pGnyT?FDuOg7rHjPQ;7K#_qSSX0TM+xaWkhut5VlGE z+*8Q|7NwH#5J{uuyLCgb_bVjP0oTC9O0pKwMQv zoCtTZHkW{})q~)Dsysc^q|B=B-?m8wr#4V9x_V3nB8b9FuPm*f{psGZDD*SEqefGN(Gu)>$^f~(sUF-TFgcM?Dne>vhWY{O z(pd6MM!Nox#GyV9*YwJTGiBuuQa|=69R2b=^SrO>Gz?i`wWFF_jIVi;P}e0P8US{` ztb8_kH%LX+8r;W9?Gv*Fx~>WhC|O!@K3X%d-SQH2y^uV{?Az zy=^s!tEvY7 zoV+G)sz$ypxwfVnEt*J@^DP>3(8Lm9allRkgoaf;7R=$M%e8evHPPE31wvC9xxCea z!AMbYAS=|iwkm4WMSqBZhdhzofknd*qtOd#4n$qqQDQ0z%rch7uIY(gA%csA383fV zK~+OC@(E_@3WQN6ocj#%9g-}F$zJJ>8ZuIso7{|*O=~1A>@kIMptu*9k8p9GuWwTBs*lb=VR0xUzK0<(7J`__& zV(8-#W2n_o=oTio0M@o%uG;!-eOaHhs#gED_5wBN$}DDPOCLY4cWxHiepP)!udc2> z_cxyW%c@9i?<^nf@J6*<^p(FFYBjN*`W*Sni4PN+(ZEDBRftX7!AGb&irUL0#ear8 z>{`~dF2O{^Lot<}&uy*hmrzITOL#TjR!?iyFN0XCVSJyD*B0BUE%M;h!A?GjfgguF z>`~u0CArq~y~rfoyWX4bP1X0po+Q7rFUdQYMY6?8PMPlx3 QAm!kI(DVw?JE=YU4-=j@hX4Qo diff --git a/hall_of_fame_2024-06-12_133828.466.pkl b/hall_of_fame_2024-06-12_133828.466.pkl deleted file mode 100644 index 05624874ba9648174c4db8092ff05fe475979eb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2749 zcmb7GJ8T?97{2o(zB}9TJ5C^qLW2^(PV59H1;_zQ7;(geL`XEzWNvrPJNCYqnYF#< zAwV+3(sUjQ5Dgs^AOsCaG!!&ch!P~EAR&Q5L&-yeZ+7<{wuJ;M?cMJGn*aIz`)c1? zpVUg(r3d0vidiX)9=?{|xPG0j3MOSF%$_;>nt9or(IY|RGM`B1Ge_|#G`d0^ClS<1 zjUH|AkcyNhUt;ykc1xM;l`P*v!@?DJ$G))P(2uOWevc* zG*=%g>%lmR6TcwTNAyVNok+gTO#MDR6*{ToGf8kZY3rM--wf!1fNtetuCCzOWwG+i ziXL=ufD)94O4{JOYQ5~$a1YkYx))BFdO6YKA(M)^Ug#{~HN)kP`Nkx#vr0|+FQusO|y(sZrgd4;@Z(33n0)%Z)U*ct4 z@qk5%B0NNK;Hzt?lZ*;KB~nGP_21=L$yW3z$``OuZF0$oA4w}aZ2w6!3G=$H=xHay zS!|0dRJ7Su)I+Q+HPmJii94XSK?SD`6vpzZF%^g)3RAPZxVG@)-IGf*`jiXTLy2lr zzbnfqBnZkzda^A6J2IEC$B`)XQ?sjw6NJ$e?1hA(3(ReO?>>UfiHZ^tQX4ba_fVI{ zif=H|_J>G^`aE1U%U3QI!_ZIt*rRat^SABwj;_)$WVzI?9@%7k)l-DJE(tLcko#r% zqsi?%PwMf4#Y4%2D!5lBo7vUoVvLw#E!{saWEYB`n{^{_l$Uw5`1PI4vOZQYgG5oN zw$hHH-``VTtiAHbL5bENLgELw1}l29upu{ToY&O0N+-zCf-h+3MnN`Q<#w>`?pt2G z)wufYZy)^CW<^M7Ccd1fuT;`gjzCLA8yLt~L=D>DK6(jfef-m{$96A0t&hodjy|{1 zp!%dqxt{=VP@!tTS91iw%dm&`>n4mffj60oV6jgf=ECTu?|wf1`iEcXsY6TxeF(gF zcjwe+&;F|WFb$!p59t%dOtoBZC)9c{(V_}M{nbct0uZ1Ap#z9skj4)ngvG77s?t$Uo|3WI||4$n#8W1i4GCL#li;Ab#T9~ zAQ{is z5m4*qL_tJB9j`;4WLwxgM5aNUBKdKQdSp1B)2)dvY9XE5=%Np}ER2BR_V9cqlXcQ$ z6zR8s+pBA>U?hS2{h{3uHeDm_1&(9nIx*Ovs8l-ZM1sv`Z9;{h*y%$Ab<6f-;wXFv zz=#zzdLVRjkv$Y^$1If_=1p_moT-=Vy*tJWb-%09m|2w`e%b8a&bht1{D@guS$XPj zT-i^(q)cOX>39n_%Ed!Z@o&J^6Kjdjk*^H+u(TNsY(!Hz*^V821iQtkJWmpQMr2`E z(yr&Cn22~Frpohq!|3WY^wHKeyjpL|=Zx-EL2UFOejnc0R^B$dlm(}cw(?1A`C;UK zkNUn{k4-EWGJk&l;>`JlnYno~cj3b2`OC8x7Zzq6xncD5eodrQVHsuq9R>6iHM6VA z*6oDLC6Fy`F^Jt=GUIxI7u$q;qC4H2y62gFNq*@-k{4}~Z{m|>T_3T#j@pkp4{FcN zcWUFkh|1I}^}c!q;!Bk+l;AvW^9CyGz58Fp=l-Agd`q0!DvuR;=ni*JPXVVlNz9#f Qq#PI!+F2oHH)+iN0|{(A6aWAK diff --git a/hall_of_fame_2024-06-12_133901.030.csv b/hall_of_fame_2024-06-12_133901.030.csv deleted file mode 100644 index 2869128d..00000000 --- a/hall_of_fame_2024-06-12_133901.030.csv +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3456.3943,"72.08604 * x0" -5,3404.7673,"x0 * (69.649216 - x2)" -7,3326.466,"x0 * (78.26931 - (x2 + x2))" -9,3322.6904,"x0 * ((78.26931 + -1.568252) - (x2 + x2))" -10,3283.2327,"x0 * ((78.26931 + inv(x2)) - (x2 + x2))" diff --git a/hall_of_fame_2024-06-12_133901.030.csv.bkup b/hall_of_fame_2024-06-12_133901.030.csv.bkup deleted file mode 100644 index e69de29b..00000000 diff --git a/hall_of_fame_2024-06-12_133901.030.pkl b/hall_of_fame_2024-06-12_133901.030.pkl deleted file mode 100644 index c91806611a71f3dfea9ef232b02109cf11135f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2763 zcmb7GONbmr7@pZjc4l@rv(LN?Azma=ce9U>C@33UaK$leOc1<;N=4~pPL!Gj*WcoL5aLIgpH7mq$bzv}LJ>;^#_X1e=-)&Knder4dz zFKVUi(nE17#jF%Yk6uczT)xcK1d}on=C(Qgs(IO*()A#6nNKA1nWK0V8eO4|lL+dh zMvpalNJUDbm)|+x6Tcud>bl;2Cz9V_rg6WX4xQBTnIt%ybo9-|Z-(?xK(})-S6A@tvRHX$ zRS!EjKnco2C9~iLg2Y#*QP%y`b?tpXCe3C>fQz^%dLm>}F_-L9^{PmYcdSwNs*RFY z!+jXiUad3sa%!otU}Z~5qQ|$W2$Gl-F_2~o&+F2Q65mDeLG1IE zB~>9n*e3NQUM3U|Sd=KjLzD`>x|TY{sPI!FRTNwQU7i(iRga;V0Sna@myGz4w6df2 zPFhKrS9w(*b|Rd`wz)!mTRkPdhn1y<+MFVT`_wk6;IxS{Sza}!0ue-EYF3uk&;5A! z`0|WC;llM$qW0A9$ui0cg0hhw??}Lo%w_CxBnti1?CQ}3VYCFho-p);xux&hL$Enf zQ6fTWV+Q*eb!n{lCL6Q4f+s~*5Kgr+f~j}|l4cD<8O>%nB3DhT!0BEgjx7(MXhQ!7_Y zFEfP0iVEBNeR`^`v@hT9WPMNb05R3e(~L^!}wxcrH&>hIs{L*4f60x>}l zwSQs7P|nW0yQ2q@d4O&S5Qt#ZwVef6ar^}6CIB`eU1I{I!yZFtSo9=lzYI{C zsX|p&bp`%8Sx?^5wd}b7jU~dvfo2jQG(1&f!5nU<+%!(=I%XT7 zKxm>Om$zCF7|A;hV1?c`jglU9F&`q}A(x6fkf>Q;w0xngLG)EKlD4COEMrOR+L`DQ z5nL>606hl}>I#yPtvK6P0E{Bx+-HbyLa`twd#Ss6$WmQyb2C;9t);Y}V;ki_elk27 z2mZ!@;C0|~D-r>G7c|)*Ek==k3%LEd)(%DzxIY-$4Pnz&@2qniBR7b_HbteVC%{C#OKIY27FlIj0QHM>6~oG4nBh2 zW>j7z2|g;auq$cLb5Tr0JQP#q`Mha#^%DAM`x0KQx8*ZN_p2Z_dKmv_!#NhMp*^ho z`d~Ys#FigM9`LB|+x6JOav=+I3ukBM&dtm(kom>MN9X2e=N9K?9l2@r;k}wjslqbK z{5uHfD{5v}m95)RmrEd9+GY^DyJW`oVo%zHdr5D)Z|J_~_9XeGeMw%jNxq6tmQWwC zyN=pVJP&FwEOcw*-9%*?mBv7$0`cX_HcBvupLrd@d++`i@%jHJzR(tDw#ws09(u!l ZOHTu*w@A#L4Wt|x5ZYNGW;bch{sT^1Lc9O~ diff --git a/hall_of_fame_2024-06-12_134405.912.csv b/hall_of_fame_2024-06-12_134405.912.csv deleted file mode 100644 index 92914eaa..00000000 --- a/hall_of_fame_2024-06-12_134405.912.csv +++ /dev/null @@ -1,8 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.632,"x0 * 70.774315" -5,3455.5667,"(x0 * 70.774315) - -0.13811634" -6,3453.286,"(x0 * 70.774315) - inv(x2)" -8,3416.3354,"inv(x2) + (x0 * (70.774315 - x2))" -9,3363.2615,"(x0 + x0) * (inv(0.028495612) + inv(x2))" -11,3342.642,"((inv(0.023727003) - x2) + inv(-0.56747067)) * (x0 + x0)" diff --git a/hall_of_fame_2024-06-12_134405.912.csv.bkup b/hall_of_fame_2024-06-12_134405.912.csv.bkup deleted file mode 100644 index 92914eaa..00000000 --- a/hall_of_fame_2024-06-12_134405.912.csv.bkup +++ /dev/null @@ -1,8 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.632,"x0 * 70.774315" -5,3455.5667,"(x0 * 70.774315) - -0.13811634" -6,3453.286,"(x0 * 70.774315) - inv(x2)" -8,3416.3354,"inv(x2) + (x0 * (70.774315 - x2))" -9,3363.2615,"(x0 + x0) * (inv(0.028495612) + inv(x2))" -11,3342.642,"((inv(0.023727003) - x2) + inv(-0.56747067)) * (x0 + x0)" diff --git a/hall_of_fame_2024-06-12_134405.912.pkl b/hall_of_fame_2024-06-12_134405.912.pkl deleted file mode 100644 index 299d9d2bf4b62b54e09f4178ed6fca90b163f707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2763 zcmb7GOK2Tc7```;=H8p6H_yH-Qa9SFNs~0T3QDR0BVHS8i{Pf5o;!1H<|Om#IcJhg z(V{}MfwSvT(2cm$g(A37aG?t~E?p`J6$GVjT>1e0&dl6LQUo2icV_^ND0Wa}dbsYpo_GeK1(q`3l>@`FZ~AHr|OFkMgXlF%bO+&sB`>ckT#=1*@Ms)s|atO1yp z=EB2eJsd}I;unNQUDvzsMDpv*H15;Wp_4j3lLTjzj=s4t_JAG==yopV>I$A+7Aw!J z>R|^5C_#CsWER{&kod|p%DSJruDuV)q}j{}a1r-JPlQY==8}D?UKPpljy1|&wNdhF zxDP|xt97YmP)j*=crVq;mJ;t+PAwG{tZXSs^!OGPK@yW92GUI7d0l!@;=2ewh<)C& zq$&gm+oZn4%Y@M;~EV4>RLk`X_WR(90h zNh=BSDzECpPK2}AHdm-`tEa?wv9i=qn^RrWI`3(^HZ(t>ToesOtH4^pJ%cQ#m~*U5je`rJX-qZ zc4k>0Dwsi{C{){N$I&0$QeUj!_+!6Bdn_UG16+d@JyqC{TQtsVYFnin1juxrJ_xYXDp&7ZE_#IgtI>R>FSfa z=bqDtb0k>JV;j2?LE>6Oc- zml?ugMTPDCK0Vb|+86Lw#nByp4`4yDq9=i2DiO_gA{<~TT>jKn_4n`fp>F$jftVnO z+P|=3C}(Hh+0lbYzJpVy^g)Yu2t+XI+Rg&3IDP_j69Ai#t}y}9VUM9REP4{OUj``6 zRG})Xx&r^4tS4{kTJ~IkaYff!R4S4IG6r(c#uDM-Kr;yt8lI}LU=FuaZWjfS!W~bp^@DR-ElC07j8;?lZ(Up;!=;z0_SjWT`H2x~v5j&dKN%j4 z1Ak*c@H%k06^VdaHzx}s3hH=W@)X;~9wIUg;uOh`W7H$V@tkf=^iT`w+(r+5$Yo&! z47Z2p3z}?@7NbbN1>AmJYX>6<+#d|>hOp_Xch)(MksHKdo1#+btP=?~o3#lQf?~su z5Y#Q(nu(+ERRAMa(CDGi%|&jZSUYC9+%#{ROXg&w-00si-Zeewsx)R+rH?;qc5mj~ zeqDattgfy;`!}xauTfH_xx0L%jT`0Sp|7|bu=V76;&bFH13s*9MgtqsbWXNo2Oq(1 zGb%5U1RoVy*p;;BxhN(g9*U{*eBLy=dJ%oJeG#wL+wy6n`&AGdJ&gav*}%ucrjrGy z54Q73Z24j2evkUTU5_m+7qT$7usAb!c4mHo%%53YoO@*UvH68rM{XK@c&{c>s<4bQ z{|*BBikjI~W$Sj-$>mxJxP9fUy_$>lCR*CCDaG( zuA}x7&x6{F3*FjyH&B^Ir7_T`KzzBfjS|e^XWl?%z4!i$`27D9UucUnTjlX0553{O Zt*3$0TO{Vr22u_T2<@y8vzs(${{a9pLaYD) diff --git a/hall_of_fame_2024-06-12_134611.221.csv b/hall_of_fame_2024-06-12_134611.221.csv deleted file mode 100644 index 19822524..00000000 --- a/hall_of_fame_2024-06-12_134611.221.csv +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3457.0398,"x0 * 72.381226" -4,3455.891,"x0 * inv(0.013934137)" -5,3390.0393,"x0 * (72.381226 - x2)" -7,3327.1475,"(39.216946 - x2) * (x0 + x0)" -9,3204.331,"(39.216946 - (x2 + x2)) * (x0 + x0)" diff --git a/hall_of_fame_2024-06-12_134611.221.csv.bkup b/hall_of_fame_2024-06-12_134611.221.csv.bkup deleted file mode 100644 index 19822524..00000000 --- a/hall_of_fame_2024-06-12_134611.221.csv.bkup +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3457.0398,"x0 * 72.381226" -4,3455.891,"x0 * inv(0.013934137)" -5,3390.0393,"x0 * (72.381226 - x2)" -7,3327.1475,"(39.216946 - x2) * (x0 + x0)" -9,3204.331,"(39.216946 - (x2 + x2)) * (x0 + x0)" diff --git a/hall_of_fame_2024-06-12_134611.221.pkl b/hall_of_fame_2024-06-12_134611.221.pkl deleted file mode 100644 index ac64ada280b249bbb646f4d38b36f737b9608adb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2763 zcmb7GONbmr7@pZjc4l@rv(LN?5-*ylyU9$##)Goa1y>xi#stAjsMK`VY}anTQdPY> z6Evu>nuWTh6!aqA^q>e{6g=p`i${+NLIgpH7mq$bzv}LJ>;^#_X1e=-)&Kndes$!n zFDr%g(qnN)ibW}mp1jn#a``e_7fi}XnA_&mYvvVmQdfh>Wj>M2XO7}gXmp7>P9mt& zF?y=WLn=BXikYA)64G3SO7UT%i;v*9V3@8Z_ekgo9&Vj%pE~ixiQ4J5p?W;z${K)q zX)Zom)Z=j!Cw@+7RCTrgP9(pfD)94N~Xb$1c|Rqqo{|e>)QK>Oq$J<02gsj^i0U4VlLUI>Xnfk?^vVgl^X@G zg8Mk6y-J^21htS+$M;gLY$5TEWz<4$!O9krL{D#15hO9mV<62AJg-VGN_-c=2eHpv zmQ;oSVO!Lfc$rZ=U{Rt74^b-k>RRd?qr&eHsiN5W@A9;OYkCUB3|OePxn#tTq?Mht zchXA2tjcTpuoK}d*5(TJZ4H$89#)zfYIBMV?o->Mg3~6-WO?P73Pccv9kaT;vGn8J z<0}jLeiyEX61AuPK$cNf5R{GdcuxX$WF}*eBT?vg%&wkH5JpR|>j^_om|Ob3Jp`K* z6(u61HfFGoQJ2PwZ!yyIhe(I|JX|-c7tZCQF-rZ|qj2=|ckK19F4Hh%nbfYXZZp2_ zDT2NsAtnTJzpQ>dcjL}8dM0P_P%@!%?uEHldiA&%DyCRh_s_HGh2m#s-3T1zr5-JR zb0@W|59Q1tQ534(wBzUxZmTagZvL@fqC1w5_yMlLik{1D$ZZ;DHMOnM4{|E!3mUpn zkd9ih7i_QlR+q0eFMj*mhkx~05fYk;uV(2h6!g3!&{EMB#xoXClQy}JUcy7o4w3DYg0PpTqV>{ExiFna#GpO3u$ z(bszZ9wvc41m3^9bN^>A{HjMV4WVgF=%e{ebzScz)Os-6r3ym*^+<5#1xAlN_4Mi$ zGsq0#u%g2D{*a#QD(wsStNiF5e*mzcSkkk=FqMdAHxUl76fS>itNQ!*`cS`p`#?+( zMCD&tF_hCY@9yYPB;Ua)bNZk~I|L#ab!}$>RvbS8x(R?yNY|MF>9EJp85TVW+Ajr^ zW=EkaYq|vgoU|uz=}P*XgKk;_{x2ux%h2e3kKn?^xTx|k0U@Q_Qz9Y|CxFj~G))*$+-8A;nwK$fW_cI`~` zi3lzhHh_VHM|BCwNLQTgD*#5GaPBk2H=|e(lfBekJ!Yvcx4D_hht^VB(6NnjAUhcz zO#^>pK=1}|xfO|kS~q8NA`0qweexV@V-FG83E~ctAIGRiisKpGni!zw(wU6``k2eY z2pDb;&lWVs<4bw z{|*BB@|xLIW$Sj-;2kzH&K~JsWH+hL42juMhVW~XWl?%z4!i$cv`bxHi@~jiIf8aLOUzO>?X~{e*o-3LH+;$ diff --git a/hall_of_fame_2024-06-12_134928.940.csv b/hall_of_fame_2024-06-12_134928.940.csv deleted file mode 100644 index e69de29b..00000000 diff --git a/hall_of_fame_2024-06-12_134928.940.csv.bkup b/hall_of_fame_2024-06-12_134928.940.csv.bkup deleted file mode 100644 index df607f81..00000000 --- a/hall_of_fame_2024-06-12_134928.940.csv.bkup +++ /dev/null @@ -1,7 +0,0 @@ -Complexity,Loss,Equation -1,8375.137,"x0" -3,3455.502,"x0 * 71.19715" -5,3388.8281,"(72.96502 - x2) * x0" -7,3333.5115,"(72.96502 - (x2 + x2)) * x0" -11,3323.5273,"(x0 * (72.96502 + 2.309603)) - ((x0 + x0) * x2)" -17,3312.517,"((inv(x2) - inv(-0.03326154)) + (inv(x2) - inv(-0.6977749))) * ((x0 - -0.03326154) + x0)" diff --git a/hall_of_fame_2024-06-12_134928.940.pkl b/hall_of_fame_2024-06-12_134928.940.pkl deleted file mode 100644 index dc0a5175f7a65354a9210a94f3779778db340171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2763 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
%QyO**J+A4z#Gb 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 HogDaI@Ql9q diff --git a/src/ParticleGraph/models/graph_trainer.py b/src/ParticleGraph/models/graph_trainer.py index 99db50bf..45e4186d 100644 --- a/src/ParticleGraph/models/graph_trainer.py +++ b/src/ParticleGraph/models/graph_trainer.py @@ -5,7 +5,7 @@ def data_train(config, config_file, device): - # matplotlib.use("Qt5Agg") + matplotlib.use("Qt5Agg") seed = config.training.seed @@ -28,7 +28,7 @@ def data_train(config, config_file, device): elif has_cell_division: data_train_cell(config, config_file, device) elif has_no_tracking: - data_train_no_tracking(config, config_file, device) + data_train_tracking(config, config_file, device) else: data_train_particles(config, config_file, device) @@ -417,7 +417,7 @@ def data_train_particles(config, config_file, device): plt.close() -def data_train_no_tracking(config, config_file, device): +def data_train_tracking(config, config_file, device): print('') simulation_config = config.simulation @@ -579,44 +579,73 @@ def data_train_no_tracking(config, config_file, device): plt.savefig(f"./{log_dir}/tmp_training/embedding/before_particle_{dataset_name}_{epoch}_{N}.tif",dpi=87) plt.close() - for k in range(n_frames-1): - x = x_list[k].clone().detach() - distance = torch.sum(bc_dpos(x[:, None, 1:3] - x[None, :, 1:3]) ** 2, dim=2) - adj_t = ((distance < max_radius ** 2) & (distance > min_radius ** 2)).float() * 1 - edges = adj_t.nonzero().t().contiguous() - dataset = data.Data(x=x[:, :], edge_index=edges) - y = x_list[k + 1].clone().detach() - y = y[:, 1:3] - with torch.no_grad(): - pred, logvar, sigma = model(dataset, training=False, vnorm=vnorm, phi=torch.zeros(1, device=device)) - x_pred = bc_pos(x[:, 1:3] + pred * delta_t) - distance = torch.sum(bc_dpos(x[:, None, 1:3] - y[None, :, :]) ** 2, dim=2) + if epoch%2 == 0: - result = distance.min(dim=0) - min_value = result.values - min_index = result.indices + print('from cell to track training') + logger.info('from cell to track training') - if epoch%2 == 0: - x_list[k+1][min_index, 0:1] = x_list[k][:, 0:1].clone().detach() - else: - x_list[k]=index_l[k].clone().detach() + for k in trange(n_frames-1): + x = x_list[k].clone().detach() + distance = torch.sum(bc_dpos(x[:, None, 1:3] - x[None, :, 1:3]) ** 2, dim=2) + adj_t = ((distance < max_radius ** 2) & (distance > min_radius ** 2)).float() * 1 + edges = adj_t.nonzero().t().contiguous() + dataset = data.Data(x=x[:, :], edge_index=edges) + y = x_list[k + 1].clone().detach() + y = y[:, 1:3] + with torch.no_grad(): + pred, logvar, sigma = model(dataset, training=False, vnorm=vnorm, phi=torch.zeros(1, device=device)) + x_pred = bc_pos(x[:, 1:3] + pred * delta_t) + distance = torch.sum(bc_dpos(x[:, None, 1:3] - y[None, :, :]) ** 2, dim=2) - with torch.no_grad(): - model.a[(k+1)*n_particles:(k+2)*n_particles,:] = model.a[k*n_particles + min_index,:].clone().detach() + result = distance.min(dim=0) + min_value = result.values + min_index = result.indices + + x_list[k+1][min_index, 0:1] = x_list[k][:, 0:1].clone().detach() - if epoch%2 == 0: - print('from cell to track training') - logger.info('from cell to track training') x_ = torch.stack(x_list) x_ = torch.reshape(x_, (x_.shape[0] * x_.shape[1], x_.shape[2])) + x_ = x_[0:n_frames*n_particles] x_ = to_numpy(x_[:,0]) + indexes = np.unique(x_) + + for k in indexes: + pos = np.argwhere(x_ == k) + if len(pos>0): + pos=pos[:,0] + model_a = torch.median(model.a[pos,:]) + model_a = model_a.clone().detach() + model_a = model_a.repeat(len(pos),1) + with torch.no_grad(): + model.a[pos,:] = model_a + print(f'{len(np.unique(x_))} tracks, first track index: {np.min(x_)}, last track index: {np.max(x_)}') logger.info(f'{len(np.unique(x_))} tracks, first track index: {np.min(x_)}, last track index: {np.max(x_)}') x_ = [] + else: + print('from track to cell training') logger.info('from track to cell training') + x_ = torch.stack(x_list) + x_ = torch.reshape(x_, (x_.shape[0] * x_.shape[1], x_.shape[2])) + x_ = x_[0:n_frames * n_particles] + x_ = to_numpy(x_[:, 0]) + + for k in indexes: + pos = np.argwhere(x_ == k) + if len(pos > 0): + pos = pos[:, 0] + model_a = model.a[pos[0], :] + model_a = model_a.clone().detach() + model_a = model_a.repeat(len(pos), 1) + with torch.no_grad(): + model.a[pos, :] = model_a + + for k in range(n_frames): + x_list[k][:, 0] = index_l[k].clone().detach() + fig = plt.figure(figsize=(8, 8)) for k in range(0,n_frames-2,n_frames//10): embedding = to_numpy(model.a[k*n_particles:(k+1)*n_particles,:].clone().detach()) @@ -625,12 +654,10 @@ def data_train_no_tracking(config, config_file, device): plt.xticks([]) plt.yticks([]) plt.tight_layout() - plt.savefig(f"./{log_dir}/tmp_training/particle/embedding{dataset_name}_{epoch}_{N}.tif",dpi=87) + plt.savefig(f"./{log_dir}/tmp_training/embedding/after_particle_{dataset_name}_{epoch}_{N}.tif", dpi=87) plt.close() - - def data_train_cell(config, config_file, device): print('') diff --git a/src/ParticleGraph/utils.py b/src/ParticleGraph/utils.py index 9e1943bb..6ebe8069 100644 --- a/src/ParticleGraph/utils.py +++ b/src/ParticleGraph/utils.py @@ -246,7 +246,7 @@ def create_log_dir(config, config_file): os.makedirs(os.path.join(log_dir, 'tmp_training/particle'), exist_ok=True) os.makedirs(os.path.join(log_dir, 'tmp_training/field'), exist_ok=True) os.makedirs(os.path.join(log_dir, 'tmp_training/function'), exist_ok=True) - # os.makedirs(os.path.join(log_dir, 'tmp_training/embedding/siren'), exist_ok=True) + os.makedirs(os.path.join(log_dir, 'tmp_training/embedding'), exist_ok=True) if config.training.n_ghosts > 0: os.makedirs(os.path.join(log_dir, 'tmp_training/ghost'), exist_ok=True) files = glob.glob(f"{log_dir}/results/*") @@ -261,7 +261,7 @@ def create_log_dir(config, config_file): files = glob.glob(f"{log_dir}/tmp_training/function/*") for f in files: os.remove(f) - files = glob.glob(f"{log_dir}/tmp_training/siren/*") + files = glob.glob(f"{log_dir}/tmp_training/embedding/*") for f in files: os.remove(f) files = glob.glob(f"{log_dir}/tmp_training/ghost/*")