tensorflow / tensorboard

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

[Plugin question] Is there support for 2-way communication? #1122

Closed marcoancona closed 4 years ago

marcoancona commented 6 years ago

We believe the all plugin ecosystem has enormous potential and we would like to contribute to it in the direction of Interpretable Deep Learning. I think it would be beneficial to integrate into Tensorboard attribution visualization to explain a network behavior (see, for example https://github.com/marcoancona/DeepExplain) Ideally, one will be able to select input and target nodes to generate attributions for directly from Tensorboard, in the same way currently the Debugger plugin allows to inspect tensors. This, however, requires to generate ops and evaluate them on demand.

My technical question is the following: do plugin APIs allow a 2-way interaction (through grpc) with a running graph/session? I see this is somehow done in the Debugger plugin thanks for tf_debug but all other plugins seem to only allow "passive" visualization, don't they?

chihuahua commented 6 years ago

Yes! The interactive debugger plugin already uses gRPC as you noted to establish a 2-way communication with TensorFlow model logic. https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/debugger/interactive_debugger_plugin.py

Most of the plugin's logic for communicating with model logic resides within the interactive debugger server: https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/debugger/interactive_debugger_server_lib.py

Shanqing, the author of the debugger plugin, also wrote TensorFlow logic for communicating with TensorBoard via gRPC. https://github.com/tensorflow/tensorflow/blob/7cfa54d24ad311a42f596eb98948d51a4aa057c0/tensorflow/python/debug/wrappers/grpc_wrapper.py#L165

Hence, indeed, the debugger plugin set a precendence for 2-way communication via gRPC between plugin and TensorFlow logic. We have one other plugin that plans on using gRPC, and new plugins are very much welcome to use gRPC.

Also, feel free to give us more background on your plugin whenever you feel it is appropriate. :)

bileschi commented 4 years ago

Closing as a support issue over one year old. Please re-open if this is still relevant. Thanks!

bileschi commented 4 years ago

FYI: There is no currently supported standard for communication outside of a plugin, though there are a few locations which use ad hoc solutions, such as referenced by @chihuahua