Closed ClonedOne closed 4 years ago
Hi @ClonedOne, thank you for your useful suggestions, we'll try to consider them as soon as possible. Would you have a commit or code ready to resolve this issue?
Hi @beat-buesser, thanks for answering, I couldn't identify where the verbose logging originated, but I'll try to take a deeper look in the weekend
@ClonedOne ART does not have any progress bar of its own, so the ones you are seeing are from Keras. For the case of adversarial training, it is normal to see so many of them, as each time the classifier is trained for one epoch before generating fresh adversarial samples for the next epoch. To deactivate them, it is enough to set verbose
to 0 when the AdversarialTrainer
calls fit
.
@beat-buesser A few users have suggested that we add progress bars to ART. For that, we either need to implement our own, or use an existing solution (tqdm
?). The bars should probably be printed with the logger, so they can be deactivated easily.
Hi @ririnicolae Thank you for the insights and ideas. Are you aware if we have already a feature request open for the single progress bar idea that we could reference here?
I think with nb_epochs
we have a good idea of the overall progress of fit
.
I agree with @ClonedOne that if setting **{'verbosity':0}
removes all output it would be nice to provide logging something else, e.g. the discussed single progress bar as an intermediate verbosity level.
@beat-buesser There is no open issue for the progress bar, we could change the scope of the current one to cover progress bars for the entire library (attacks, defenses, training, etc.) if @ClonedOne is fine with that?
@ririnicolae Yes a single library-wide progress bar sounds like a nice solution! Please let me know if I can help with testing
@ClonedOne Perfect, your help will be very useful for testing.
Re-purposing this issue then. Options for implementing this:
The choice depends on which of these is able to serve the output in the ART logger
. FYI, tqdm
seems massively popular and well maintained.
Describe the bug The
fit()
method of AdversarialTrainer using BasicIterativeMethod attack produces an absurd amount of progress bars on the output, both in terminal and in Jupyter notebooks.Having so much stuff on output will probably reduce performance.
ps: passing
**{'verbosity':0}
to fit will remove all output, which is very impractical.To Reproduce
Expected behavior Possibly a single progress bar.
Screenshots
System information (please complete the following information):