add example with python parameters file#1799
Conversation
There was a problem hiding this comment.
Thank you @aandrusenko !
Missing a couple files:
- \content\docs\start\experiments.md
- \content\docs\user-guide\basic-concepts\parameter.md
Would you mind including them? I can do it if you're unable for any reason, no problem at all.
|
@shcheklein this makes me realize we only have |
|
@jorgeorpinel I would not make it a priority, I hope users can figure the idea out from the YAML example.
|
|
OK. @aandrusenko would you like to try adding a Python params file example in content\docs\command-reference\params\index.md ? Again, I can do it if not. Thanks |
was done
added |
I have already added an example |
|
Oh, I see. I didn't notice it the first time I looked. OK, checking again now ⌛ |
| Alternatively, the entire `TestConfig` group can be referenced, instead of the | ||
| parameters in it: |
There was a problem hiding this comment.
What other data structures are supported as groups other than classes @aandrusenko @efiop ? Thanks
There was a problem hiding this comment.
Only classes and dicts
jorgeorpinel
left a comment
There was a problem hiding this comment.
Looks good. There's a couple minor questions left above which may need addressing but could be merged as-is too, probably.
Do you want to double check @shcheklein ? Thanks
|
I see that some checks failed? Also, please let's merge upstream master to run (new) link checks? |
| ``` | ||
|
|
||
| The following [stage](/doc/command-reference/run) depends on params | ||
| `IS_BOOL`, `CONST`, as well as `TrainConfig`'s `EPOCHS` and `layers`: |
There was a problem hiding this comment.
@aandrusenko qq - if we depend on the instance variable (self.layers), when do we extract value? What is the semantics here?
There was a problem hiding this comment.
From a class, you can extract either class constants or self variables defined in __init__
There was a problem hiding this comment.
Yep, thanks! But what about the semantics? What if I have
self.layers = 10
self.layers = 12
or if I have
self.layers = 3+2
what are the expectations and limitations here?
There was a problem hiding this comment.
In the first case, TrainConfig.layers will be 12. In the second, TrainConfig.layers will not be found because the complex expression
There was a problem hiding this comment.
let's make it part of the docs and/or example? @aandrusenko it's totally fine if you don't have enough capacity, let us know and we'll take it over, but I think we should specify some basic semantics for this. Modifying example (add a few lines with Python comments + some text ?) should be enough, I guess.
shcheklein
left a comment
There was a problem hiding this comment.
we still have some open questions we need to answer (and potentially add details to the docs)
@efiop @aandrusenko it would be great if you could help us here
b7eed66 to
ce31fda
Compare
|
@shcheklein @jorgeorpinel I squashed changes and rebased |
|
Thanks @aandrusenko ! Looks like there is a conflict. We can fix it on my end, but feel free to rebase if you want. |
ce31fda to
7f4b8a0
Compare
7f4b8a0 to
2dddbed
Compare
|
@aandrusenko perfect, thanks! 🙏 one last thing - something is happening with GH not attributing commits to you- could you please check your local and GH settings. Both should use the same email I think. |
3d354f1 to
f3f8b03
Compare
f3f8b03 to
c16149b
Compare
Oh, sorry, fixed it |
|
thanks @aandrusenko ! |
| def __init__(self): | ||
| # TrainConfig.layers param will be 9 | ||
| self.layers = 5 | ||
| self.layers = 9 | ||
| # TrainConfig.foo will NOT be found because the complex expression | ||
| self.foo = 1 + 2 | ||
| # TrainConfig.bar will NOT be found | ||
| bar = 1 |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
There was a problem hiding this comment.
Why can't DVC find vars that need evaluation though? Isn't the whole params file interpreted by Python first @aandrusenko @efiop? (Just curious) Thanks
There was a problem hiding this comment.
Nope, parameters are parsed using the ast module, it parses complex expressions into a complex structure that I did not support
Related to treeverse/dvc#4456