Replies: 6 comments 36 replies
-
It seems that the main problem is that we dictate the way how users have to handle the plots - plots in dvc are data files that can be visualized only with Vega template. What we should be doing is provide the user with easy way to access the files needed for visualisation , no matter what kind of file it might be. We could allow user to mark any kind of data as plot and provide a way to obtain this asset via some kind of a call (think aggregated |
Beta Was this translation helpful? Give feedback.
-
Regarding support for images or other file types, I'm not sure what this would enable within DVC itself. Of course, outputs can already be images or any other file type. It seems that the only additional feature being considered is to compare images from different commits side by side. How would this be displayed in DVC? Is it worth the added UI complexity of how to define these outputs? I'm interested in the Studio perspective on this (cc @shcheklein @tapadipti), since it seems like viewing images from different commits side by side could more naturally be shown there. Could this be handled without additional DVC support? For example, being able to select outputs with certain file extensions to compare? |
Beta Was this translation helpful? Give feedback.
-
Note regarding idea of providing a way to get the |
Beta Was this translation helpful? Give feedback.
-
In my opinion, the plotting is very custom work and involves some additional analysis. I agreed that DVC should not go too deep on providing different plotting methods, but providing some common data format. For example, I myself used to use |
Beta Was this translation helpful? Give feedback.
-
Based on additional comments about combining plots in iterative/studio-support#23 and #6316, does it make sense to add a Here are a few examples: Combine filesplots:
- train_loss.csv:
x: epoch
y: loss
target: train_vs_val
- val_loss.csv:
x: epoch
y: loss
target: train_vs_val
Combine multiple columns from the same fileplots:
- val_f1.csv:
x: epoch
y: f1_class_0
y_label: f1
target: f1
- val_f1.csv:
x: epoch
y: f1_class_1
target: f1
Separately plot different columns from the same fileplots:
- scores.csv:
x: epoch
y: acc
target: acc
- scores.csv:
x: epoch
y: auc
target: auc
Thoughts on how this might work:
|
Beta Was this translation helpful? Give feedback.
-
After discussing with @dberenbaum and @daavoo I am writing down some of the issues that will be impacted by this, and should be considered when implementing |
Beta Was this translation helpful? Give feedback.
-
I am creating new discussion, because existing ones regarding this subject (#5808 and #5681) are focusing on singular problems we have been discussing during today's meeting.
Current state of plots
Plots, from the DVC perspective are files containing list of data points. It can be JSON, YAML, CSV or TSV file.
Example data:
The actual visual aid generation takes place upon calling
dvc plots show/diff
command. What DVC does:We designed plots in a format similar to our metrics command. Intended use assumes that user creates
"raw data" files and DVC is able to provide comparison between different revisions.
Our discussion seems to reveal that this approach (or its current implementation) does not cover all use cases that we might need to support.
I will list the use cases that seem to be omitted and have showed up during our discussion.
Problems
Solutions
Potential solutions we have been talking about:
Some notes:
As @pmrowla noted in (#5681 (comment)): Should we focus on particular data types from DVC point of view? There are many types of image files. Do we want to support them all? And from the other point of view - what if user marks some non-image, non-data file as plot? (eg. Vega JSON)? What if user wants some other unknown format? We can always verify the plot structure/extension/whatever but the problem of format will never be solved - because we will never be able to support all use cases.
Related: #3826
Did I miss something?
Beta Was this translation helpful? Give feedback.
All reactions