I’m also getting this issue, recorder attribute is not found but should be in the TrackerCallback
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Input In [30], in <module>
14 p = get_image_path(record_collection_with_negative_small_filtered_val,i)
15 arr = skio.imread(p)
---> 16 class_pred = learner.predict(arr)
17 class_pred = class_pred[0].cpu().detach().numpy()
18 pred_arrs.append(class_pred)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/learner.py:268, in Learner.predict(self, item, rm_type_tfms, with_input)
266 def predict(self, item, rm_type_tfms=None, with_input=False):
267 dl = self.dls.test_dl([item], rm_type_tfms=rm_type_tfms, num_workers=0)
--> 268 inp,preds,_,dec_preds = self.get_preds(dl=dl, with_input=True, with_decoded=True)
269 i = getattr(self.dls, 'n_inp', -1)
270 inp = (inp,) if i==1 else tuplify(inp)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/learner.py:254, in Learner.get_preds(self, ds_idx, dl, with_input, with_decoded, with_loss, act, inner, reorder, cbs, **kwargs)
252 ctx_mgrs = self.validation_context(cbs=L(cbs)+[cb], inner=inner)
253 if with_loss: ctx_mgrs.append(self.loss_not_reduced())
--> 254 with ContextManagers(ctx_mgrs):
255 self._do_epoch_validate(dl=dl)
256 if act is None: act = getattr(self.loss_func, 'activation', noop)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/xtras.py:499, in ContextManagers.__enter__(self)
--> 499 def __enter__(self): self.default.map(self.stack.enter_context)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/foundation.py:155, in L.map(self, f, gen, *args, **kwargs)
--> 155 def map(self, f, *args, gen=False, **kwargs): return self._new(map_ex(self, f, *args, gen=gen, **kwargs))
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:698, in map_ex(iterable, f, gen, *args, **kwargs)
696 res = map(g, iterable)
697 if gen: return res
--> 698 return list(res)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:683, in bind.__call__(self, *args, **kwargs)
681 if isinstance(v,_Arg): kwargs[k] = args.pop(v.i)
682 fargs = [args[x.i] if isinstance(x, _Arg) else x for x in self.pargs] + args[self.maxi+1:]
--> 683 return self.func(*fargs, **kwargs)
File ~/miniconda3/envs/fastai2/lib/python3.9/contextlib.py:448, in _BaseExitStack.enter_context(self, cm)
446 _cm_type = type(cm)
447 _exit = _cm_type.__exit__
--> 448 result = _cm_type.__enter__(cm)
449 self._push_cm_exit(cm, _exit)
450 return result
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/xtras.py:499, in ContextManagers.__enter__(self)
--> 499 def __enter__(self): self.default.map(self.stack.enter_context)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/foundation.py:155, in L.map(self, f, gen, *args, **kwargs)
--> 155 def map(self, f, *args, gen=False, **kwargs): return self._new(map_ex(self, f, *args, gen=gen, **kwargs))
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:698, in map_ex(iterable, f, gen, *args, **kwargs)
696 res = map(g, iterable)
697 if gen: return res
--> 698 return list(res)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:683, in bind.__call__(self, *args, **kwargs)
681 if isinstance(v,_Arg): kwargs[k] = args.pop(v.i)
682 fargs = [args[x.i] if isinstance(x, _Arg) else x for x in self.pargs] + args[self.maxi+1:]
--> 683 return self.func(*fargs, **kwargs)
File ~/miniconda3/envs/fastai2/lib/python3.9/contextlib.py:448, in _BaseExitStack.enter_context(self, cm)
446 _cm_type = type(cm)
447 _exit = _cm_type.__exit__
--> 448 result = _cm_type.__enter__(cm)
449 self._push_cm_exit(cm, _exit)
450 return result
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/learner.py:224, in Learner.__enter__(self)
--> 224 def __enter__(self): self(_before_epoch); return self
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/learner.py:141, in Learner.__call__(self, event_name)
--> 141 def __call__(self, event_name): L(event_name).map(self._call_one)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/foundation.py:155, in L.map(self, f, gen, *args, **kwargs)
--> 155 def map(self, f, *args, gen=False, **kwargs): return self._new(map_ex(self, f, *args, gen=gen, **kwargs))
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:698, in map_ex(iterable, f, gen, *args, **kwargs)
696 res = map(g, iterable)
697 if gen: return res
--> 698 return list(res)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:683, in bind.__call__(self, *args, **kwargs)
681 if isinstance(v,_Arg): kwargs[k] = args.pop(v.i)
682 fargs = [args[x.i] if isinstance(x, _Arg) else x for x in self.pargs] + args[self.maxi+1:]
--> 683 return self.func(*fargs, **kwargs)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/learner.py:145, in Learner._call_one(self, event_name)
143 def _call_one(self, event_name):
144 if not hasattr(event, event_name): raise Exception(f'missing {event_name}')
--> 145 for cb in self.cbs.sorted('order'): cb(event_name)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/callback/core.py:45, in Callback.__call__(self, event_name)
42 _run = (event_name not in _inner_loop or (self.run_train and getattr(self, 'training', True)) or
43 (self.run_valid and not getattr(self, 'training', False)))
44 res = None
---> 45 if self.run and _run: res = getattr(self, event_name, noop)()
46 if event_name=='after_fit': self.run=True #Reset self.run to True at each end of fit
47 return res
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastai/callback/tracker.py:32, in TrackerCallback.before_fit(self)
30 self.run = not hasattr(self, "lr_finder") and not hasattr(self, "gather_preds")
31 if self.reset_on_fit or self.best is None: self.best = float('inf') if self.comp == np.less else -float('inf')
---> 32 assert self.monitor in self.recorder.metric_names[1:]
33 self.idx = list(self.recorder.metric_names[1:]).index(self.monitor)
File ~/miniconda3/envs/fastai2/lib/python3.9/site-packages/fastcore/basics.py:390, in GetAttr.__getattr__(self, k)
388 attr = getattr(self,self._default,None)
389 if attr is not None: return getattr(attr,k)
--> 390 raise AttributeError(k)
AttributeError: recorder