From 81d8518143270e3275e4818398c0efbc332c48ca Mon Sep 17 00:00:00 2001 From: Ioanna-Maria Panagou Date: Sun, 19 May 2024 19:09:53 +0300 Subject: [PATCH] starting training the model again for updated model env --- agents_monitor.png | Bin 56698 -> 27209 bytes createPareto.py | 9 ++-- .../StopTrainingOnNoImprovementCallback.py | 2 +- train/env/ModelEnv.py | 44 ++++++++---------- .../env/__pycache__/ModelEnv.cpython-311.pyc | Bin 17484 -> 17191 bytes train/quantizer/Quantizer.py | 2 +- .../__pycache__/Quantizer.cpython-311.pyc | Bin 20583 -> 20583 bytes 7 files changed, 28 insertions(+), 29 deletions(-) diff --git a/agents_monitor.png b/agents_monitor.png index 5a578dee27bc086682d6ebbd532e99c7645a9e17..45e512ed9eaeee4f816fb04d7adac7c09f38025c 100644 GIT binary patch literal 27209 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 diff --git a/createPareto.py b/createPareto.py index 59c1d55..d108218 100644 --- a/createPareto.py +++ b/createPareto.py @@ -1,6 +1,7 @@ import numpy as np import matplotlib.pyplot as plt +''' accuracy = np.array([99.45, 99.45, 98.792, 97.55, 9.45]) size = np.array([1.0, 1.0, 0.525, 0.45, 0.125]) @@ -10,16 +11,18 @@ plt.xlabel('Size of model (% of largest quantized model)') plt.ylabel('Accuracy (MNIST)') plt.savefig('size_vs_accuracy.png') +''' import pandas as pd -weights = [[0.9, 0.1], [0.75, 0.25], [0.5, 0.5], [0.25, 0.75], [0.1, 0.9]] # do not use 0 because obviously 1-bit for the area part -colors = ['g', 'b', 'r', 'm', 'k'] +weights = [[1.0, 0.0], [0.8, 0.2]] # do not use 0 because obviously 1-bit for the area part +#colors = ['g', 'b', 'r', 'm', 'k'] +colors = ['g', 'b'] plt.figure() for i, weight in enumerate(weights): agent = pd.read_csv(f'agent_{weights[i][0]}_{weights[i][1]}.monitor.csv', skiprows=0, header = 1) - plt.plot(np.arange(100), agent['r'], c = colors[i], label = f'{weights[i][0]}_{weights[i][1]}') + plt.plot(np.arange(np.shape(agent)[0]), agent['r'], c = colors[i], label = f'{weights[i][0]}_{weights[i][1]}') plt.title('Reward for each agent per episode') plt.legend() plt.savefig('agents_monitor.png') diff --git a/train/callbacks/StopTrainingOnNoImprovementCallback.py b/train/callbacks/StopTrainingOnNoImprovementCallback.py index 1d36769..f3b7673 100644 --- a/train/callbacks/StopTrainingOnNoImprovementCallback.py +++ b/train/callbacks/StopTrainingOnNoImprovementCallback.py @@ -14,7 +14,7 @@ def _on_step(self) -> bool: if self.n_calls % self.check_freq == 0: # Retrieve training rewards training_rewards = self.locals['rewards'] - mean_reward = np.mean(training_rewards[-100]) + mean_reward = np.mean(training_rewards[-100:]) if self.verbose > 0: print(f"Mean reward: {mean_reward:.2f} - Best mean reward: {self.best_mean_reward:.2f}") diff --git a/train/env/ModelEnv.py b/train/env/ModelEnv.py index 587d1f2..a1d8d6d 100644 --- a/train/env/ModelEnv.py +++ b/train/env/ModelEnv.py @@ -105,7 +105,7 @@ def build_index(self): self.model = preprocess_for_quantize(self.model) measure_model(self.model, self.model_config['center_crop_shape'], self.model_config['center_crop_shape'], self.finetuner.in_channels) - + self.quantizable_idx = [] self.layer_types = [] self.num_quant_acts = 0 @@ -218,9 +218,9 @@ def reset(self, seed = None, option = None): return obs, info def step(self, action): + action = self.get_action(action) self.strategy.append(action) - self.num_actions += 1 # if not all activations have been quantized if self.cur_ind < self.num_quant_acts: @@ -233,11 +233,11 @@ def step(self, action): # if activations have been quantized, quantize outputs and handle residuals if self.cur_ind == self.num_quant_acts: self.model = self.quantizer.quantize_output(self.model) - self.update_index() - self.model = self.quantizer.handle_residuals(self.model) - self.update_index() - + + # build index again, because quantize output and handle residuals can insert quantizers + self.update_index() + if self.cur_ind >= self.num_quant_acts: self.model = self.quantizer.quantize_layer(self.model, self.index_to_quantize, @@ -245,30 +245,25 @@ def step(self, action): # build index again, because quanize layers can insert quantizers self.update_index() - if self.is_final_layer(): - print(self.strategy) - self.quantizer.finalize(self.model) - self.finetuner.model = self.model self.finetuner.model.to(self.finetuner.device) - # accuracy before finetuning - acc = self.finetuner.validate(eval = False) - - # can only calibrate if residuals are handled - if self.cur_ind >= self.num_quant_acts: - self.finetuner.calibrate() + self.finetuner.calibrate() - if self.num_actions % self.args.finetune_every == 0 or self.is_final_layer(): + # finetune only after all layers have been quantized + if self.is_final_layer(): + self.quantizer.finalize(self.model) + self.finetuner.validate() self.finetuner.init_finetuning_optim() self.finetuner.init_loss() + self.finetuner.finetune() + + acc = self.finetuner.validate(eval = False) - # if it is final layer train for 10 epochs - if self.is_final_layer(): - self.finetuner.finetuning_epochs = 10 - + if acc < 25.0: + self.finetuner.init_finetuning_optim() + self.finetuner.init_loss self.finetuner.finetune() - self.num_actions = 0 self.action_running_mean = ((action[0]) / (self.max_bit) + (self.cur_ind) * self.action_running_mean) / (self.cur_ind + 1) reward = self.reward(acc, action[0]) @@ -276,7 +271,6 @@ def step(self, action): if self.is_final_layer(): obs = self.layer_embedding[self.cur_ind, :].copy() terminated = True - acc = self.finetuner.validate(eval = False) info = {"accuracy": acc} print(f'Accuracy: {acc}, Size: {self.action_running_mean}') return obs, reward, terminated, False, info @@ -285,8 +279,10 @@ def step(self, action): self.cur_ind += 1 self.index_to_quantize = self.quantizable_idx[self.cur_ind] obs = self.layer_embedding[self.cur_ind, :].copy() + if acc < 25.0: + acc = self.finetuner.validate(eval = False) + self.prev_acc = acc - acc = self.finetuner.validate(eval = False) info = {"accuracy": acc} return obs, reward, terminated, False, info diff --git a/train/env/__pycache__/ModelEnv.cpython-311.pyc b/train/env/__pycache__/ModelEnv.cpython-311.pyc index 642eb9d3b9a3e1292768192ab50edf280690b614..9963aab5f8a1b5f056974ebe4bc249cc7f35108b 100644 GIT binary patch delta 1518 zcmaJ>Uu;@c7(eI2h1+tuWmlkVU0VvJ+szD&m6rZ-U0pk!Q(JX$G0_FF_u^=g=_%cm z+(wPY5kqwPnJk+=5VP53&ZLGHjStJ>i%Wa}Lc+omJ}xmCOMLUibD&UaswcT8_dCDe z@B4oFzH{&I8NBfcmNu-`Zba9e-%iFJKK`S0z~6P*jL;RNqa1vA$PVXb_P~;V0x!d+ z-{D+gTtsGcw9GeN>6SCWAHiOcs+x;pFrYXMSjBMXu!7C-LXRDO_KVIHjxoqQz z>!ZCAEwGK);Kg7cmf)@60MyMgmy>CSJSOr{!$u{@tWt)ht;pHoZr}h_3?5;M$2t%v zLptK#f5mpdV-7EO+wdJm=zID!*E*+js-x3|m-WGx3 zu2zt?AQl^1F@0|n)3o7f3UuNs&rX`ENSjIT%|1F&2hZv30-O!?3l8`x zB;)82Qe8mZhmucLSIwoB^5 ziqH}lF#rzP;guc{T!Iyz3y64Uu@P6haeXvxyIpihwAH6~Z8g1ggDq1no4Qdq=)AgR zNa{dUe;Hpu(5KX+<73hspm@eOzoo;QC?=lubyL1y--_4f`lCLO@ zmZi~*p=OaT+drMkOi|_DePwaDAP(=Qhi|7e%!4p}2%eq3M8C17>b~s!%3qO{lB{ex z3bIm^!(};~nX9?_GRCYmU!U&B;hU^c8?1R83DW1tD*Ms6*&_W6yFs^f&-3S1EpZ}w z!B4b{QKAmz=a1gP)^8}L7)gxrHsJ3W555Ki$6WYeK76bf;{Ytqp0V6&Wg*vKbM~q{ yhxt$)b?m3$)hGYN*Wu)Gf`85ba(n^LEgJFBI@*2DtY$AhYG8l;2ZQXVCI0~o>uIn6 delta 1760 zcma)5O>7%Q6rS~8Z0~x#PVB^vj(W3)hv&u3Nj76UI(T zg9Ai@%2F-*GZjtMBAE;Q2|b`3h!B@vxB!xEt*~VYDF|^uAQTWM#DN(*>o`&hjI^US z?|tu^@6CJr@EY|^fnpyT40?dq)O)c+dGs^(NKhBi0&o}PK?$uNHKS`m6IuvHEpJjO zB>|EpP^$(278E?5#W=L6OYZZ4u zP+V?4UDk~I*{q0z@BoF4P|$6OrG9)K-m88DGJ?7j&D&-2PH$-d=L}5?SUcaI5!_OR zO-AEsN;%}iDvcX{uu3Po74Gr2>&Eki!7Uu`l=E-}F7l+Byn>LUAHoi*S&{~(FrOQl zLT0l71n|Bh(Q$QY5GQ$cDnYZ>tcAS1^RSl}y7G!7wWh%hUmvqjPIPz7dt8~5w(%Re5DzE$pfD>*pYg z^C9W=%YLe%5?A8spY`acai49dp}#2R`1nFDxtM|H2yB^b2stBX-hl;dH@HjjjF1+2 zC}xwway*@Fux~8KGr8od$fx61Mc81ISw4}>#M66c^%6{Gat&?Mhhgw6;rxJXHwdE^ z3rGs_oY>GUVC!{=O&A~%7N>~0<&4OSE20Ztg||r3Z4xr=g_4YteHYT)sD7u1nBF>J1DnX=X@X{{SG6|JLXqU#fjqYPJL9970qVO$d9Dl@Jf zo8y7AW{XyB(QWgW{T17+WScF_7GJ3|9O{cEytJ`KJFB#_Lc1l}y$ck&(D#h#=Fpwd z3gea-cbRdca@30Q(ZI1?4KVf;Gd0#%WqprcEwjD~83?Jc`Uj-8_^mnH`{r3sFr;Xm9vSVA_r~4=>i~_OO=%*xs5X1ZEdhA~JSxP;& v3p)0B6gl%N^$2-qAobPOhck23i|19;saZR4G#bS delta 40 vcmaF9fbsbPM&9MTyj%=GaA~ebn$1SuLza^REyXuKvs}r}XuElW<8?j&9;psk