deepforge-dev / deepforge

A modern development environment for deep learning
https://deepforge.org
Apache License 2.0
753 stars 78 forks source link

Create a new Plotly Visualizer #1308

Closed umesh-timalsina closed 4 years ago

umesh-timalsina commented 4 years ago

The current metamodel is updated to add sublot support as well and should be updated to incorporate image support as well (#1290). As it turns out plotly is easy to use visualizer with subplot and image trace support and would be preferred over d3 plotting library that we currently use. So, a separate visualizer should be developed for plotly with subplots and image support. https://github.com/deepforge-dev/deepforge-keras/pull/138 could help immensely for JSON to GME conversion, a lot of it is done based on the meta-nodes to be created. Rather than having a standard conversion mechanism.

Possible limitations: The current ImageTrace in plotly has primitive support for images and may not be used for advanced image visualization, but is actively under development. A way to convert(rgb) image into matrix in javascript might be necessary(Although this can be achieved in the custom_matplotlib_backend) we have. Either way, After #1290 is closed, this should be a priority to incorporate a new visualizer in the Execution visualization.

umesh-timalsina commented 4 years ago

This tree shows all the nodes being created. Now ExecutionIndexControl needs to be modified to send updated information to the plotly widget.

umesh-timalsina commented 4 years ago

image

74c6931 replaces the existing LineGraphWidget in ExecutionIndexControl with PlotlyGraphWidget. Now, there should be a standard way of doing three things:

  1. Creating Graph, Subgraph and Image nodes from backend_deepforge.py's json represenation of the plot (https://github.com/deepforge-dev/deepforge-keras/pull/138).
  2. Change Images in the metamodel to point to
  3. Also, incrementally support different plots in matplotlib in the visualizer.

But, the first priority should be changing the existing code to support subplots(should be st. forward) by changing ExecutionIndexControl PlotlyGraphWidget and PlotlyGraphPanel. This implementatioin should only resolve subplot issue (#1290) and should #1218 be addressed in a different PR?

umesh-timalsina commented 4 years ago

This implementation should only resolve subplot issue (#1290) and should #1218 be addressed in a different PR?

The best way to do this is to have a separate feature branch for image support.