I created a GAN Learner using from_learners method as mentioned in Lesson 7.
When I am trying to predict the output for a image using learn.predict(img)
(img is a image opened using open_image), I’m getting the following error
AttributeError Traceback (most recent call last)
<ipython-input-81-3b6ef5ec6f96> in <module>
----> 1 learn.predict(img)
/opt/anaconda3/lib/python3.7/site-packages/fastai/basic_train.py in predict(self, item, **kwargs)
353 "Return predicted class, label and probabilities for `item`."
354 batch = self.data.one_item(item)
--> 355 res = self.pred_batch(batch=batch)
356 pred,x = res[0],batch[0]
357 norm = getattr(self.data,'norm',False)
/opt/anaconda3/lib/python3.7/site-packages/fastai/basic_train.py in pred_batch(self, ds_type, batch, reconstruct)
332 else: xb,yb = self.data.one_batch(ds_type, detach=False, denorm=False)
333 cb_handler = CallbackHandler(self.callbacks)
--> 334 xb,yb = cb_handler.on_batch_begin(xb,yb, train=False)
335 preds = loss_batch(self.model.eval(), xb, yb, cb_handler=cb_handler)
336 res = _loss_func2activ(self.loss_func)(preds[0])
/opt/anaconda3/lib/python3.7/site-packages/fastai/callback.py in on_batch_begin(self, xb, yb, train)
261 self.state_dict.update(dict(last_input=xb, last_target=yb, train=train,
262 stop_epoch=False, skip_step=False, skip_zero=False, skip_bwd=False))
--> 263 self('batch_begin', mets = not self.state_dict['train'])
264 return self.state_dict['last_input'], self.state_dict['last_target']
265
/opt/anaconda3/lib/python3.7/site-packages/fastai/callback.py in __call__(self, cb_name, call_mets, **kwargs)
233 if call_mets:
234 for met in self.metrics: self._call_and_update(met, cb_name, **kwargs)
--> 235 for cb in self.callbacks: self._call_and_update(cb, cb_name, **kwargs)
236
237 def set_dl(self, dl:DataLoader):
/opt/anaconda3/lib/python3.7/site-packages/fastai/callback.py in _call_and_update(self, cb, cb_name, **kwargs)
223 def _call_and_update(self, cb, cb_name, **kwargs)->None:
224 "Call `cb_name` on `cb` and update the inner state."
--> 225 new = ifnone(getattr(cb, f'on_{cb_name}')(**self.state_dict, **kwargs), dict())
226 for k,v in new.items():
227 if k not in self.state_dict:
/opt/anaconda3/lib/python3.7/site-packages/fastai/vision/gan.py in on_batch_begin(self, last_input, last_target, **kwargs)
112 if self.clip is not None:
113 for p in self.critic.parameters(): p.data.clamp_(-self.clip, self.clip)
--> 114 return {'last_input':last_input,'last_target':last_target} if self.gen_mode else {'last_input':last_target,'last_target':last_input}
115
116 def on_backward_begin(self, last_loss, last_output, **kwargs):
/opt/anaconda3/lib/python3.7/site-packages/fastai/basic_train.py in __getattr__(self, k)
414 setattr(self.learn, self.cb_name, self)
415
--> 416 def __getattr__(self,k): return getattr(self.learn, k)
417 def __setstate__(self,data:Any): self.__dict__.update(data)
418
AttributeError: 'GANLearner' object has no attribute 'gen_mode'
How do I get the predicted image?