Skip to content

Commit

Permalink
Merge pull request #552 from AndreaCossu/master
Browse files Browse the repository at this point in the history
Fixed bug in global it counter
  • Loading branch information
AndreaCossu committed Apr 21, 2021
2 parents 4e7f384 + 2f24cff commit 68290d3
Show file tree
Hide file tree
Showing 11 changed files with 23 additions and 0 deletions.
4 changes: 4 additions & 0 deletions avalanche/evaluation/metric_definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ class PluginMetric(Metric[TResult], StrategyCallbacks['MetricResult'], ABC):
invoked by the :class:`EvaluationPlugin`. Subclasses should implement
the `result`, `reset` and the desired callbacks to compute the specific
metric.
Remember to call the `super()` method when overriding
`after_train_iteration` or `after_eval_iteration`.
An instance of this class usually leverages a `Metric` instance to update,
reset and emit metric results at appropriate times
(during specific callbacks).
Expand Down
4 changes: 4 additions & 0 deletions avalanche/evaluation/metrics/accuracy.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ def reset(self) -> None:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self.reset() # Because this metric computes the accuracy of a single mb
self._minibatch_accuracy.update(strategy.mb_y,
strategy.logits)
Expand Down Expand Up @@ -179,6 +180,7 @@ def result(self) -> float:
return self._accuracy_metric.result()

def after_training_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_training_iteration(strategy)
self._accuracy_metric.update(strategy.mb_y,
strategy.logits)

Expand Down Expand Up @@ -266,6 +268,7 @@ def before_eval_exp(self, strategy: 'BaseStrategy') -> None:
self.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self._accuracy_metric.update(strategy.mb_y,
strategy.logits)

Expand Down Expand Up @@ -312,6 +315,7 @@ def before_eval(self, strategy: 'BaseStrategy') -> None:
self.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self._accuracy_metric.update(strategy.mb_y,
strategy.logits)

Expand Down
1 change: 1 addition & 0 deletions avalanche/evaluation/metrics/confusion_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ def before_eval(self, strategy) -> None:
self.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self.update(strategy.mb_y,
strategy.logits)

Expand Down
2 changes: 2 additions & 0 deletions avalanche/evaluation/metrics/cpu_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ def before_training_iteration(self, strategy) -> MetricResult:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self._minibatch_cpu.update()
return self._package_result(strategy)

Expand Down Expand Up @@ -236,6 +237,7 @@ def before_training_iteration(self, strategy: 'BaseStrategy') \

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> None:
super().after_training_iteration(strategy)
self._epoch_cpu.update()
self._cpu_mean.update(self._epoch_cpu.result())
self._epoch_cpu.reset()
Expand Down
1 change: 1 addition & 0 deletions avalanche/evaluation/metrics/disk_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ def before_training_iteration(self, strategy) -> MetricResult:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self._minibatch_disk.update()
return self._package_result(strategy)

Expand Down
2 changes: 2 additions & 0 deletions avalanche/evaluation/metrics/forgetting.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ def before_eval_exp(self, strategy: 'BaseStrategy') -> None:
self._current_accuracy.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self.eval_exp_id = strategy.experience.current_experience
self._current_accuracy.update(strategy.mb_y,
strategy.logits)
Expand Down Expand Up @@ -343,6 +344,7 @@ def before_eval_exp(self, strategy: 'BaseStrategy') -> None:
self._current_accuracy.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self.eval_exp_id = strategy.experience.current_experience
self._current_accuracy.update(strategy.mb_y,
strategy.logits)
Expand Down
1 change: 1 addition & 0 deletions avalanche/evaluation/metrics/gpu_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ def before_training_iteration(self, strategy: 'BaseStrategy') -> None:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
return self._package_result(strategy)

def after_training(self, strategy: 'BaseStrategy') -> None:
Expand Down
4 changes: 4 additions & 0 deletions avalanche/evaluation/metrics/loss.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ def reset(self) -> None:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self.reset() # Because this metric computes the loss of a single mb
self._loss_metric.update(strategy.loss,
patterns=len(strategy.mb_y))
Expand Down Expand Up @@ -150,6 +151,7 @@ def before_training_epoch(self, strategy: 'BaseStrategy') -> None:
self.reset()

def after_training_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_training_iteration(strategy)
self._loss_metric.update(strategy.loss, len(strategy.mb_y))

def after_training_epoch(self, strategy: 'BaseStrategy') \
Expand Down Expand Up @@ -239,6 +241,7 @@ def before_eval_exp(self, strategy: 'BaseStrategy') -> None:
self.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self._loss_metric.update(strategy.loss, len(strategy.mb_y))

def after_eval_exp(self, strategy: 'BaseStrategy') -> \
Expand Down Expand Up @@ -284,6 +287,7 @@ def before_eval(self, strategy: 'BaseStrategy') -> None:
self.reset()

def after_eval_iteration(self, strategy: 'BaseStrategy') -> None:
super().after_eval_iteration(strategy)
self._loss_metric.update(strategy.loss, len(strategy.mb_y))

def after_eval(self, strategy: 'BaseStrategy') -> \
Expand Down
1 change: 1 addition & 0 deletions avalanche/evaluation/metrics/mac.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def result(self) -> float:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self._minibatch_MAC.update(strategy.model,
strategy.mb_x[0].unsqueeze(0))
return self._package_result(strategy)
Expand Down
1 change: 1 addition & 0 deletions avalanche/evaluation/metrics/ram_usage.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def before_training_iteration(self, strategy: 'BaseStrategy') -> None:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
return self._package_result(strategy)

def after_training(self, strategy: 'BaseStrategy') -> None:
Expand Down
2 changes: 2 additions & 0 deletions avalanche/evaluation/metrics/timing.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ def before_training_iteration(self, strategy) -> MetricResult:

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self._minibatch_time.update()
return self._package_result(strategy)

Expand Down Expand Up @@ -205,6 +206,7 @@ def before_training_iteration(self, strategy: 'BaseStrategy') \

def after_training_iteration(self, strategy: 'BaseStrategy') \
-> MetricResult:
super().after_training_iteration(strategy)
self._epoch_time.update()
self._time_mean.update(self._epoch_time.result())
self._epoch_time.reset()
Expand Down

0 comments on commit 68290d3

Please sign in to comment.