pytorch-ignite / code-generator

Web Application to generate your training scripts with PyTorch Ignite
https://code-generator.pytorch-ignite.ai/
BSD 3-Clause "New" or "Revised" License
40 stars 23 forks source link

To extend the mapping capabilities of metadata.json to have very specific features for each templates #308

Open guptaaryan16 opened 1 year ago

guptaaryan16 commented 1 year ago

Clear and concise description of the problem

Right now, the metadata.json works like this

{
    training”:{
        …Options
    }

}

And we just import all these options and assume that all templates are going to have them.

This causes two specific issues, as given below

Suggested solution

We propose two approaches to solve this problem, namely

[Changes in TabTraining.vue(and other Vue components)]

``` Then we can selectively choose which option will be available for each template. This approach makes it easier to track each template and option. The only problem of this approach seems to be hard for us to specify an option like a specific argparser or backend. - We can configure `data_options.json` file in the templates. This file will contain all options related to each template that can may contain sub options check as well. This approach makes more sense while contributing new templates as you need to add all options you want to configure directly. This will require the following changes ``` [New file templateOptions.json] { "templates": { "template-vision-classification": { "training": [ "argparser", "deterministic", "torchrun", "spawn", "nproc_per_node", "nnodes", "master_addr", "master_port", "backend" ] } [Changes in TabTraining.vue(and other Vue components)] const trainingOptions = ref(templates[store.config.template]["training"]) ``` This approach seems a bit complex but can provide more control over the options and templates. Also it can help introduce template specific features like having specific evaluation functions and other metadata options. ### Additional context This issue was discuss in our weekly meeting this week. cc @vfdev-5 @theory-in-progress
vfdev-5 commented 1 year ago

@guptaaryan16 thanks a lot for expanded "Suggested solution" section. I would prefer the 2nd option