tensorflow / tensorboard

TensorFlow's Visualization Toolkit
Apache License 2.0
6.67k stars 1.65k forks source link

Allow runs to be tagged with / filtered by user-defined tags #210

Open edgimar opened 7 years ago

edgimar commented 7 years ago

Given that TensorBoard is primarily used for evaluating the performance of different models and hyperparameters, it would be convenient to allow a user to assign one or more tags/labels to a run. Presumably these could be stored in a file alongside the tfevents file(s). It should furthermore be possible to filter runs by tag or tag-combination.

wchargin commented 7 years ago

Often people encode this information into the run name. For example, if the hyperparameters are the learning rate and the number of fully connected layers, runs could be of the form train_lr=1e-3_fc=5. In this case, the information will be displayed nicely in the runs selector and in the visualizations themselves. Because the run selector permits filtering, you can indeed filter by runs with specific hyperparameters, like train.*fc=[3-5], as you request.

Would this work for you?

teamdandelion commented 7 years ago

I think this is essentially a duplicate of https://github.com/tensorflow/tensorboard/issues/194. TensorBoard needs moar metadata :)

edgimar commented 7 years ago

I'm not convinced it's a duplicate -- and @wchargin, encoding hyperparams in the run name also won't satisfy this use-case. The point is to be able to manually inspect the result of a set of hyperparameters, and then label/tag the run based on this. So it is for adding tags to a run that are not known apriori.

wchargin commented 7 years ago

I see: instead of tags like "learning_rate=1e-3" you want tags like "learned quickly," "overfit," etc.?

If I'm interpreting your post correctly, you also want the user to be able to manually assign these to the runs, as opposed to computing them and storing them in the events files (like everything else).

(@dandelionmane thoughts?)

edgimar commented 7 years ago

@wchargin Yes, that's the idea. Tags could be anything the user chooses (just like email labels in gmail), and the ability to associate multiple tags with a single run would be good.