Closed marcoancona closed 4 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. :)
Closing as a support issue over one year old. Please re-open if this is still relevant. Thanks!
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
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?