I would like to propose a context manager for progress_disabled()
. When doing a quick search for batch size or image size it would help to not have a bunch of red-bars coming up.
class progress_diabled():
''' Context manager to disable the progress update bar and Recorder print'''
def __init__(self,learner:Learner):
self.learn = learner
self.orig_callback_fns = copy(learner.callback_fns)
def __enter__(self):
#silence progress bar
fastprogress.fastprogress.NO_BAR = True
fastai.basic_train.master_bar, fastai.basic_train.progress_bar = fastprogress.force_console_behavior()
self.learn.callback_fns[0] = partial(Recorder,add_time=True,silent=True) #silence recorder
return self.learn
def __exit__(self,type,value,traceback):
fastai.basic_train.master_bar, fastai.basic_train.progress_bar = master_bar,progress_bar
self.learn.callback_fns = self.orig_callback_fns
Used like this:
with progress_diabled(learn) as tmp_learn:
tmp_learn.fit(1)
Code is pretty simple (below) and happy to make a PR with this included. One change I would need is around Recorder
. I wanted to ask if there is a reason that self.silent
is not exposed in the __init__
for Recorder? See here.
Another question is where to put it into the library. Inside basic_train.py
does not quite seem right, so open to suggestions.
Thanks for any feedback or suggestions.