It would be cool if TB was removed as a dependency, as some people (like me) don't really use it.
Tensorboard dependency currently represents close to 50% of the download volume of PL (assuming you start with pytorch installed) - 6.2 MB out of 12.6MB for me, when I install from conda. So removing it would make the package much slimmer.
I use only Wandb for logging - or just the progress bar for quick test runs.
Tensorboard could be put into loggers part of extras_require in setup.py.
I think this is a necessary requirement if we want to keep TB the default logger in Lightning.
Putting it in extras would mean that the default setting in Trainer(logger=True) will break, because we use torch.utils.tensorboard.SummaryWriter and this requires the tensorboard install.
IMO we should deprecate logger=True, to avoid giving preferential treatment to tensorboard.
We would first deprecate it, giving an appropriate warning when it is set to True.
Then, once it is removed, remove the forced installation of tensorboard and have users pass it manually to the logger argument, just as they have to when any other logger is used.
total n00b question: what features does wandb support better than tensorboard?
@ananthsub for me it's basically just that you can view the logs online, from everywhere. But it also automatically logs GPU/CPU/memory usage, enables you to view logs by epoch ob x axis (which I think Tensorboard doesn't support?)...
Isn't removing the default in conflict with Lightning's vision of providing good defaults across the board, including a good default logger? Since pytorch has the summary writer for TB, it seems a natural choice.
Ideally the torch summary writer would write the logger files without the dependency on tb, and only for viewing the logs would you require to install the dep. This is not the case now, but I would prefer a solution like that over the alternatives.
So why not make CSVLogger the default?
Isn't removing the default in conflict with Lightning's vision of providing good defaults across the board, including a good default logger? Since pytorch has the summary writer for TB, it seems a natural choice.
That is assuming that Tensorboard is the best default logger. I don't know which percentage of Lightning users actually rely on it, but given the growing number of loggers, i'm not sure everybody agrees with that assumption.
The second of Lightning's basic principles is (quoting the README) "Abstract away unecessary boilerplate, but make it accessible when needed". I know it originally refers to code but it should apply to other aspects. For non-tensorboard users, tensorboard is _unnecessary boilerplate_ included in their installation. Keep in mind that it would still be accessible for those who need it.
That is assuming that Tensorboard is the best default logger. I don't know which percentage of Lightning users actually rely on it, but given the growing number of loggers, i'm not sure everybody agrees with that assumption.
I don't want to make any assumptions. I am a wandb user and see it superior to TB in almost every way. I never use TB except when I work with other people's code. Yet I think that having a logger is a better default than having no logger. That's all I'm saying.
Since no one advocated for it, I'll just note that we use Tensorboard because it's well known and it's the closest thing to an official logger for PyTorch. It might not be the best, but people understand it and with it being in PyTorch it's generally reliable.
Adding this deprecation would be an API change and would force us to change installation routines for code we've distributed (something I was hoping would end with 1.0). We already download 400+ MB of PyTorch, so although it would be nice for things to be lighter, the dependency tree and API changes weigh more in our calculus.