(self)
| 10 | super().__init__(opt) |
| 11 | |
| 12 | def analyze(self): |
| 13 | total_filter_mac = [0.0] * len(self.hook_list) |
| 14 | for test_loader in self.test_loaders: |
| 15 | test_set_name = test_loader.dataset.opt['name'] |
| 16 | num_samples = self.opt.get('num_samples',10) |
| 17 | print(f'Analyzing {test_set_name}...\n') |
| 18 | pbar = tqdm(total=num_samples, desc='') |
| 19 | for idx, val_data in enumerate(test_loader): |
| 20 | if idx >= num_samples: |
| 21 | break |
| 22 | tensor_lq = val_data['lq'].to(self.device) |
| 23 | imgname = osp.basename(val_data['lq_path'][0]) |
| 24 | tensor_base = torch.zeros_like(tensor_lq) |
| 25 | layer_conductance = self._integrated_gradients(tensor_base, tensor_lq) |
| 26 | total_filter_mac = [a + b for a, b in zip(total_filter_mac, layer_conductance)] |
| 27 | pbar.set_description(f'Read {imgname}') |
| 28 | pbar.update(1) |
| 29 | self._save_results(total_filter_mac, 'ig') |
| 30 | |
| 31 | def _integrated_gradients(self, base_img, final_img): |
| 32 | total_step = self.opt['total_step'] |
no test coverage detected