view ludwig_render_config.xml @ 0:ed8a9ea5bc73 draft default tip

planemo upload for repository https://github.com/goeckslab/Galaxy-Ludwig.git commit bdea9430787658783a51cc6c2ae951a01e455bb4
author goeckslab
date Tue, 07 Jan 2025 22:45:58 +0000
parents
children
line wrap: on
line source

<tool id="ludwig_render_config" name="Ludwig Render Config" version="@VERSION@" profile="@PROFILE@">
    <description>renders thefull config based on user input</description>
    <macros>
        <import>ludwig_macros.xml</import>
    </macros>
    <expand macro="python_requirements_gpu" />
    <expand macro="macro_stdio" />
    <version_command>echo "@VERSION@"</version_command>
    <command>
        <![CDATA[
            python '$__tool_directory__/ludwig_render_config.py' '$inputs' '$output'
        ]]>
    </command>
    <configfiles>
        <inputs name="inputs" />
    </configfiles>
    <inputs>
        <section name="input_features" title="Input Features" expanded="true">
            <repeat name="input_feature" min="1" max="30" title="Input Feature">
                <conditional name="input_feature_selector" >
                    <param name="type" type="select" label="Select an input feature type">
                        <option value="number" selected="true">number</option>
                        <option value="binary">binary</option>
                        <option value="category">category</option>
                        <option value="set">set</option>
                        <option value="bag">bag</option>
                        <option value="sequence">sequence</option>
                        <option value="text">text</option>
                        <option value="timeseries">timeseries</option>
                        <option value="audio">audio</option>
                        <option value="image">image</option>
                        <option value="date">date</option>
                        <option value="h3">h3</option>
                        <option value="vector">vector</option>
                    </param>
                    <when value="number">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="passthrough" selected="true">passthrough</option>
                                <option value="dense">dense</option>
                                <option value="sparse">sparse</option>
                            </param>
                            <when value="passthrough" />
                            <when value="dense" />
                            <when value="sparse" />
                        </conditional>
                    </when>
                    <when value="binary">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="passthrough" selected="true">passthrough</option>
                                <option value="dense">dense</option>
                            </param>
                            <when value="passthrough" />
                            <when value="dense" />
                        </conditional>
                    </when>
                    <when value="category">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="passthrough" selected="true">passthrough</option>
                                <option value="dense">dense</option>
                                <option value="sparse">sparse</option>
                            </param>
                            <when value="passthrough" />
                            <when value="dense" />
                            <when value="sparse" />
                        </conditional>
                    </when>
                    <when value="set">
                    </when>
                    <when value="bag">
                    </when>
                    <when value="sequence">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="parallel_cnn" selected="true">parallel_cnn</option>
                                <option value="embed">embed</option>
                                <option value="stacked_cnn">stacked_cnn</option>
                                <option value="stacked_parallel_cnn">stacked_parallel_cnn</option>
                                <option value="rnn">rnn</option>
                                <option value="cnnrnn">cnnrnn</option>
                                <option value="transformer">transformer</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="parallel_cnn" />
                            <when value="embed" />
                            <when value="stacked_cnn" />
                            <when value="stacked_parallel_cnn" />
                            <when value="rnn" />
                            <when value="cnnrnn" />
                            <when value="transformer" />
                            <when value="passthrough" />
                        </conditional>
                    </when>
                    <when value="text">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="parallel_cnn" selected="true">parallel_cnn</option>
                                <option value="embed">embed</option>
                                <option value="stacked_cnn">stacked_cnn</option>
                                <option value="stacked_parallel_cnn">stacked_parallel_cnn</option>
                                <option value="rnn">rnn</option>
                                <option value="cnnrnn">cnnrnn</option>
                                <option value="transformer">transformer</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="parallel_cnn" />
                            <when value="embed" />
                            <when value="stacked_cnn" />
                            <when value="stacked_parallel_cnn" />
                            <when value="rnn" />
                            <when value="cnnrnn" />
                            <when value="transformer" />
                            <when value="passthrough" />
                        </conditional>
                    </when>
                    <when value="timeseries">
                    </when>
                    <when value="audio">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="parallel_cnn" selected="true">parallel_cnn</option>
                                <option value="embed">embed</option>
                                <option value="stacked_cnn">stacked_cnn</option>
                                <option value="stacked_parallel_cnn">stacked_parallel_cnn</option>
                                <option value="rnn">rnn</option>
                                <option value="cnnrnn">cnnrnn</option>
                                <option value="transformer">transformer</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="parallel_cnn" />
                            <when value="embed" />
                            <when value="stacked_cnn" />
                            <when value="stacked_parallel_cnn" />
                            <when value="rnn" />
                            <when value="cnnrnn" />
                            <when value="transformer" />
                            <when value="passthrough" />
                        </conditional>
                    </when>
                    <when value="image">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="stacked_cnn" selected="true">stacked_cnn</option>
                                <option value="resnet">resnet</option>
                                <option value="mlp_mixer">mlp_mixer</option>
                                <option value="vit">vit</option>
                            </param>
                            <when value="stacked_cnn" />
                            <when value="resnet" />
                            <when value="mlp_mixer" />
                            <when value="vit" />
                        </conditional>
                    </when>
                    <when value="date">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="embed" selected="true">embed</option>
                                <option value="wave">wave</option>
                            </param>
                            <when value="embed" />
                            <when value="wave" />
                        </conditional>
                    </when>
                    <when value="h3">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="embed" selected="true">embed</option>
                                <option value="weighted_sum">weighted_sum</option>
                                <option value="rnn">rnn</option>
                            </param>
                            <when value="embed" />
                            <when value="weighted_sum" />
                            <when value="rnn" />
                        </conditional>
                    </when>
                    <when value="vector">
                        <param argument="name" type="text" value="" label="Name"/>
                        <conditional name="encoder">
                            <param argument="type" type="select" label="Select an encoder">
                                <option value="passthrough">passthrough</option>
                                <option value="dense" selected="true">dense</option>
                            </param>
                            <when value="passthrough" />
                            <when value="dense" />
                        </conditional>
                    </when>
                </conditional>
            </repeat>
        </section>
        <section name="output_features" title="Output Features" expanded="true">
            <repeat name="output_feature" min="1" max="30" title="Output Feature">
                <conditional name="output_feature_selector">
                    <param argument="type" type="select" label="Select an ouput feature type">
                        <option value="category" selected="true">category</option>
                        <option value="binary" >binary</option>
                        <option value="set" >set</option>
                        <option value="vector" >vector</option>
                        <option value="number" >number</option>
                        <option value="sequence" >sequence</option>
                        <option value="text" >text</option>
                    </param>
                    <when value="category">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="classifier" selected="true">classifier</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="classifier">
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="0" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="softmax_cross_entropy" selected="true">softmax_cross_entropy</option>
                            </param>
                            <when value="softmax_cross_entropy" />
                        </conditional>
                        <param argument="top_k" type="integer" value="3" help="The number of categories to consider when computing the first k measure." min="2" max="10" />
                    </when>
                    <when value="binary">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="regressor" selected="true">regressor</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="regressor">
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="binary_weighted_cross_entropy" selected="true">binary_weighted_cross_entropy</option>
                            </param>
                            <when value="binary_weighted_cross_entropy">
                                <param argument="positive_class_weight" type="integer" value="1" help="Multiplies the loss for the positive class, increasing its importance" min="1" max="100" />
                            </when>
                        </conditional>
                        <param argument="threshold" type="float" value="0.5" help="The threshold above which the predicted output of the sigmoid will be mapped to 1." min="0" max="1.0" />
                    </when>
                    <when value="set">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="classifier" selected="true">classifier</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="classifier">
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="sigmoid_cross_entropy" selected="true">sigmoid_cross_entropy</option>
                            </param>
                            <when value="sigmoid_cross_entropy" />
                        </conditional>
                    </when>
                    <when value="vector">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="projector" selected="true">projector</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="projector">
                                <param argument="softmax" type="boolean" value="false" help="Whether to apply a softmax at the end of the decoder?" />
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="0" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="mean_squared_error" selected="true">mean_squared_error</option>
                                <option value="mean_absolute_error">mean_absolute_error</option>
                                <option value="softmax_cross_entropy">softmax_cross_entropy (use this only if softmax is true)</option>
                            </param>
                            <when value="mean_squared_error" />
                            <when value="mean_absolute_error" />
                            <when value="softmax_cross_entropy" />
                        </conditional>
                    </when>
                    <when value="number">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="regressor" selected="true">regressor</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="regressor">
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="mean_squared_error" selected="true">mean_squared_error</option>
                                <option value="mean_absolute_error">mean_absolute_error</option>
                                <option value="root_mean_squared_error">root_mean_squared_error</option>
                                <option value="root_mean_squared_percentage_error">root_mean_squared_percentage_error</option>
                            </param>
                            <when value="mean_squared_error" />
                            <when value="mean_absolute_error" />
                            <when value="root_mean_squared_error" />
                            <when value="root_mean_squared_percentage_error" />
                        </conditional>
                    </when>
                    <when value="sequence">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="generator" selected="true">generator</option>
                                <option value="tagger">tagger</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="generator">
                                <param argument="cell_type" type="select" label="Selct the type of recurrent cell to use" >
                                    <option value="gru" selected="true">gru</option>
                                    <option value="rnn">rnn</option>
                                    <option value="lstm">lstm</option>
                                </param>
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="tagger">
                                <param argument="use_attention" type="boolean" value="false" help="Whether to apply a multi-head self attention layer before prediction?" />
                                <param argument="use_bias" type="boolean" value="true" help="whether the layer uses a bias vector?" />
                                <param argument="attention_embedding_size" type="integer" value="256" help="The embedding size of the multi-head self attention layer." min="1" max="1024" />
                                <param argument="attention_num_heads" type="integer" value="8" help="The number of attention heads in the multi-head self attention layer." min="1" max="16"/>
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="sequence_softmax_cross_entropy" selected="true">sequence_softmax_cross_entropy</option>
                            </param>
                            <when value="sequence_softmax_cross_entropy" />
                        </conditional>
                    </when>
                    <when value="text">
                        <param argument="name" type="text" value="" />
                        <conditional name="decoder">
                            <param argument="type" type="select" label="Select a decoder type">
                                <option value="generator" selected="true">generator</option>
                                <option value="tagger">tagger</option>
                                <option value="passthrough">passthrough</option>
                            </param>
                            <when value="generator">
                                <param argument="cell_type" type="select" label="Selct the type of recurrent cell to use" >
                                    <option value="gru" selected="true">gru</option>
                                    <option value="rnn">rnn</option>
                                    <option value="lstm">lstm</option>
                                </param>
                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="tagger">
                                <param argument="use_attention" type="boolean" value="false" help="Whether to apply a multi-head self attention layer before prediction?" />
                                <param argument="use_bias" type="boolean" value="true" help="whether the layer uses a bias vector?" />
                                <param argument="attention_embedding_size" type="integer" value="256" help="The embedding size of the multi-head self attention layer." min="1" max="1024" />
                                <param argument="attention_num_heads" type="integer" value="8" help="The number of attention heads in the multi-head self attention layer." min="1" max="16"/>                                <param argument="num_fc_layers" type="integer" value="0" help="The number of stacked fully connected layers that the input to the feature passes through" min="1" max="20" />
                                <param argument="output_size" type="integer" value="256" help="The Size of the output of a fully connected layer." min="1" max="1024" />
                                <param argument="fc_dropout" type="float" value="0" help="Dropout rate" min="0" max="1" />
                            </when>
                            <when value="passthrough" />
                        </conditional>
                        <conditional name="loss">
                            <param argument="type" type="select" label="Select a loss type">
                                <option value="sequence_softmax_cross_entropy" selected="true">sequence_softmax_cross_entropy</option>
                            </param>
                            <when value="sequence_softmax_cross_entropy" />
                        </conditional>
                    </when>
                </conditional>
            </repeat>
        </section>
        <section name="combiner" title="Combiner" expanded="false">
            <param name="type" type="select" label="Select a combiner type">
                <option value="concat" selected="true">concat</option>
                <option value="sequence_concat">sequence_concat</option>
                <option value="sequence">sequence</option>
                <option value="tabnet">tabnet</option>
                <option value="transformer">transformer</option>
                <option value="tabtransformer">tabtransformer</option>
                <option value="comparator">comparator</option>
                <option value="project_aggregate">project_aggregate</option>
            </param>
        </section>
        <section name="trainer" title="Trainer" expanded="true">
            <conditional name="trainer" >
                <param name="model_type" type="select" label="Select the model type">
                    <option value="ecd" selected="true">ecd</option>
                    <option value="gbm">gbm</option>
                </param>
                <when value="ecd">
                    <param argument="batch_size" type="integer" value="128" help="Batch size" min="1" max="4096" />
                    <param argument="epochs" type="integer" value="100" help="Number of epochs" min="1" max="1000" />
                    <conditional name="optimizer">
                        <param name="type" type="select" label="Select an optimizer">
                            <option value="adam" selected="true">adam</option>
                            <option value="sgd">sgd</option>
                            <option value="adadelta">adadelta</option>
                            <option value="adamw">adamw</option>
                            <option value="adagrad">adagrad</option>
                            <option value="adamax">adamax</option>
                            <option value="ftrl">ftrl</option>
                            <option value="nadam">nadam</option>
                            <option value="rmsprop">rmsprop</option>
                        </param>
                        <when value="adam" />
                        <when value="sgd" />
                        <when value="adadelta" />
                        <when value="adamw" />
                        <when value="adagrad" />
                        <when value="adamax" />
                        <when value="ftrl" />
                        <when value="nadam" />
                        <when value="rmsprop" />
                    </conditional>
                    <param argument="learning_rate" type="float" value="0.001" help="Learning rate" min="0" max="1.0" />
                    <param argument="early_stop" type="integer" value="5" help="Number of epochs of patience without an improvement on the validation measure before the training is stopped." min="1" max="20"/>
                </when>
                <when value="gbm">
                    <param argument="boosting_type" type="select" label="Select the type of boosting algorithm" >
                        <option value="gbdt" selected="true">gbdt</option>
                        <option value="rf">rf`</option>
                        <option value="dart">dart</option>
                        <option value="goss">goss</option>
                    </param>
                    <param argument="num_boost_round" type="integer" value="1000" help="Number of boosting rounds to perform." min="1" max="5000" />
                    <param argument="learning_rate" type="float" value="0.03" help="Learning rate." min="0.0001" max="1.0" />
                    <param argument="lambda_l1" type="float" value="0.25" help="L1 regularization factor." min="0" max="10.0" />
                    <param argument="lambda_l2" type="float" value="0.2" help="L2 regularization factor." min="0" max="10.0" />
                    <param argument="max_depth" type="integer" value="18" help="Maximum depth of a tree. A negative value means no limit." min="3" max="50" />
                    <param argument="early_stop" type="integer" value="5" help="Number of epochs of patience without an improvement on the validation measure before the training is stopped." min="1" max="20" />                
                </when>
            </conditional>
        </section>
        <!-- <section name="preprocessing" title="Preprocessing" expanded="false">
        </section> -->
        <conditional name="hyperopt">
            <param name="do_hyperopt" type="select" label="Whether to do hyperparameter optimization?">
                <option value="false" selected="true">No</option>
                <option value="true">Yes</option>
            </param>
            <when value="true">
                <section name="hyperopt" title="Hyperparameter Optimization configuration" expanded="false">
                    <conditional name="executor">
                        <param argument="type" type="select" label="Select the executor type" >
                            <option value="ray" selected="true">ray</option>
                        </param>
                        <when value="ray" />
                    </conditional>
                </section>
            </when>
            <when value="false" />
        </conditional>
    </inputs>
    <outputs>
        <data format="yaml" name="output" label="${tool.name}" />
    </outputs>
    <tests>
        <test expect_num_outputs="1">
            <output name="output" file="render_config01.yml" />
        </test>
    </tests>
    <help>
        <![CDATA[
**What it does**
Render a Ludwig config template.


**Output**
A yaml file.

        ]]>
    </help>
    <expand macro="macro_citations" />
</tool>