New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
plots: flexible dvc.yaml spec #7086
Comments
@pared I think it makes sense to implement in reverse order of how it's listed above.
Requirements:
Requirements:
Requirements:
|
Question: can we provide parallel coordinates plots config alongside/inside plots spec? |
Related: #6316 |
IMO let's not worry about it as part of this issue. |
Commenting here to not pollute #7477 with things that are not implementation-related. The following syntax is currently supported in the P.R. and can cover all 3 use cases above:
I'm missing the reasoning behind adding the |
@daavoo I find them about equally intuitive, although getting rid of I can see two distinctions using
Currently, this will produce two separate confusion matrices, which isn't what I want. It won't work at all AFAIK without
|
And less code to maintain.
I think we should just remove data and iterate on the UI for legends.
I would prefer this new syntax. I would vote for getting rid of About the |
AFAIR it should be not that big of a problem, we already have underlying logic. Just need to modify it a little bit. At least for |
So how does this look for updated syntax of the original comment at the top of this issue? plots:
- train_vs_val:
x:
- train_loss.csv:epoch
- val_loss.csv:epoch
y:
- train_loss.csv:loss
- val_loss.csv:loss
- val_f1.csv:
x:
- epoch
- epoch
y:
- f1_class_0
- f1_class_1
y_label: f1
# data source is absent, using key value: val_f1.csv
# Separately plot since we have TWO plots, even though with the same data file
- scores_acc:
x: scores.csv:epoch
y: scores.csv:acc
- scores_auc:
x: scores.csv:epoch
y: scores.csv:auc It is more verbose, but I like that it's more clear and explicit. My only question would be to what extent to allow shortcuts and try to infer expected behavior. For example:
I don't mind requiring everything to be listed explicitly for now since it does make behavior more clear. |
Another suggestion, that clearly separates plot level metadata with props, it's a bit verbose though. plots:
train_vs_val:
title: title
props:
- path: train_loss.csv # or, train_loss.csv:epoch as proposed above
key: epoch
axis: x
- path: val_loss.csv
key: epoch
axis: x
label: f1 |
@pared and I discussed and came up with the following action points:
Edit: @pared We forgot to add in cleaning up the legend and labels (see the first point in #7086 (comment)). |
@pared The example above in #7086 (comment) uses file paths as dict keys under
This will raise a duplicate keys error. Should it instead support a list of values here (note that this isn't supported today)? plots:
scores_acc:
x: epoch
y:
- scores.csv:
- acc
scores_auc:
x: epoch
y:
- scores.csv:
- auc val_f1:
x: epoch
y:
- val_f1.csv:
- acc
- val_f1.csv:
- loss
y_label: f1 train_vs_val:
x: epoch
y:
- train_loss.csv:
- loss
- val_loss.csv:
- loss This would be consistent with how stages:
train:
cmd: python train.py
params:
- config.yaml:
- alpha
- beta
outs:
- model.h5 |
@dberenbaum yeah, that makes sense, we can also support both, support for dict is in place anyway, so... |
@skshetry This is definitely very explicit. The question is whether it won't be too much for users to type. I think we should be going for the least amount of work needed for user to input the data. On the other hand that implies a lot of automatic behavior (like infering |
@daavoo
It can be achieved with:
|
YAML doesn't permit dup keys also even if we change that to arrays we will have the issue of duplication and discrepancy, i.e. one template under one key and another one under the second key. So plot names should be unique string, whichever you write in target I suppose and datafile should go as key. We may still use a key if
datafile
is absent, this will simplify a very common one file case. So:Originally posted by @Suor in #5980 (reply in thread)
The text was updated successfully, but these errors were encountered: