diff keras_model_config.xml @ 15:6eb4e7fb0f91 draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 9981e25b00de29ed881b2229a173a8c812ded9bb
author bgruening
date Wed, 09 Aug 2023 13:23:40 +0000
parents 4471d2b2de79
children
line wrap: on
line diff
--- a/keras_model_config.xml	Thu Aug 11 09:49:51 2022 +0000
+++ b/keras_model_config.xml	Wed Aug 09 13:23:40 2023 +0000
@@ -1,778 +1,879 @@
-<tool id="keras_model_config" name="Create a deep learning model architecture" version="@KERAS_VERSION@" profile="20.05">
-    <description>using Keras</description>
-    <macros>
-        <import>main_macros.xml</import>
-        <import>keras_macros.xml</import>
-    </macros>
-    <expand macro="python_requirements" />
-    <expand macro="macro_stdio" />
-    <version_command>echo "@KERAS_VERSION@"</version_command>
-    <command>
-        <![CDATA[
+<tool id="keras_model_config" name="Create a deep learning model architecture" version="@VERSION@" profile="@PROFILE@">
+  <description>using Keras</description>
+  <macros>
+    <import>main_macros.xml</import>
+    <import>keras_macros.xml</import>
+  </macros>
+  <expand macro="python_requirements" />
+  <expand macro="macro_stdio" />
+  <version_command>echo "@VERSION@"</version_command>
+  <command>
+    <![CDATA[
     python '$__tool_directory__/keras_deep_learning.py'
            --inputs '$inputs'
            --tool_id 'keras_model_config'
            --outfile '$outfile'
     ]]>
-    </command>
-    <configfiles>
-        <inputs name="inputs" />
-    </configfiles>
-    <inputs>
-        <conditional name="model_selection">
-            <param name="model_type" type="select" label="Select keras model type">
-                <option value="sequential" selected="true">Sequential</option>
-                <option value="functional">Model (functional API)</option>
+  </command>
+  <configfiles>
+    <inputs name="inputs" />
+  </configfiles>
+  <inputs>
+    <conditional name="model_selection">
+      <param name="model_type" type="select" label="Select keras model type">
+        <option value="sequential" selected="true">Sequential</option>
+        <option value="functional">Model (functional API)</option>
+      </param>
+      <when value="sequential">
+        <param argument="input_shape" type="text" value="(32, )" optional="true" label="input_shape" help="Tuple of integers or None. Required for the first layer." />
+        <repeat name="layers" min="1" max="500" title="LAYER">
+          <conditional name="layer_selection">
+            <param name="layer_type" type="select" label="Choose the type of layer">
+              <expand macro="keras_layer_types_core" />
+              <expand macro="keras_layer_types_Convolutional" />
+              <expand macro="keras_layer_types_Pooling" />
+              <expand macro="keras_layer_types_locally_connected" />
+              <expand macro="keras_layer_types_recurrent" />
+              <expand macro="keras_layer_types_embedding" />
+              <expand macro="keras_layer_types_advanced_activations" />
+              <expand macro="keras_layer_types_normalization" />
+              <expand macro="keras_layer_types_noise" />
             </param>
-            <when value="sequential">
-                <param argument="input_shape" type="text" value="(32, )" optional="true" label="input_shape" help="Tuple of integers or None. Required for the first layer." />
-                <repeat name="layers" min="1" max="500" title="LAYER">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" type="select" label="Choose the type of layer">
-                            <expand macro="keras_layer_types_core" />
-                            <expand macro="keras_layer_types_Convolutional" />
-                            <expand macro="keras_layer_types_Pooling" />
-                            <expand macro="keras_layer_types_locally_connected" />
-                            <expand macro="keras_layer_types_recurrent" />
-                            <expand macro="keras_layer_types_embedding" />
-                            <expand macro="keras_layer_types_advanced_activations" />
-                            <expand macro="keras_layer_types_normalization" />
-                            <expand macro="keras_layer_types_noise" />
-                        </param>
-                        <when value="Dense">
-                            <expand macro="layer_Dense" />
-                        </when>
-                        <when value="Activation">
-                            <expand macro="keras_activations" />
-                        </when>
-                        <when value="Dropout">
-                            <expand macro="layer_Dropout" />
-                        </when>
-                        <when value="Flatten">
-                            <expand macro="layer_Flatten" />
-                        </when>
-                        <when value="Reshape">
-                            <expand macro="layer_Reshape" />
-                        </when>
-                        <when value="Permute">
-                            <expand macro="layer_Permute" />
-                        </when>
-                        <when value="RepeatVector">
-                            <expand macro="layer_RepeatVector" />
-                        </when>
-                        <when value="ActivityRegularization">
-                            <expand macro="layer_ActivityRegularization" />
-                        </when>
-                        <when value="Masking">
-                            <expand macro="layer_Masking" />
-                        </when>
-                        <when value="SpatialDropout1D">
-                            <expand macro="layer_SpatialDropout1D" />
-                        </when>
-                        <when value="SpatialDropout2D">
-                            <expand macro="layer_SpatialDropout2D" />
-                        </when>
-                        <when value="SpatialDropout3D">
-                            <expand macro="layer_SpatialDropout3D" />
-                        </when>
-                        <when value="Conv1D">
-                            <expand macro="layer_Conv1D" />
-                        </when>
-                        <when value="Conv2D">
-                            <expand macro="layer_Conv2D" />
-                        </when>
-                        <when value="SeparableConv1D">
-                            <expand macro="layer_SeparableConv1D" />
-                        </when>
-                        <when value="SeparableConv2D">
-                            <expand macro="layer_SeparableConv2D" />
-                        </when>
-                        <when value="DepthwiseConv2D">
-                            <expand macro="layer_DepthwiseConv2D" />
-                        </when>
-                        <when value="Conv2DTranspose">
-                            <expand macro="layer_Conv2DTranspose" />
-                        </when>
-                        <when value="Conv3D">
-                            <expand macro="layer_Conv3D" />
-                        </when>
-                        <when value="Conv3DTranspose">
-                            <expand macro="layer_Conv3DTranspose" />
-                        </when>
-                        <when value="Cropping1D">
-                            <expand macro="layer_Cropping1D" />
-                        </when>
-                        <when value="Cropping2D">
-                            <expand macro="layer_Cropping2D" />
-                        </when>
-                        <when value="Cropping3D">
-                            <expand macro="layer_Cropping3D" />
-                        </when>
-                        <when value="UpSampling1D">
-                            <expand macro="layer_UpSampling1D" />
-                        </when>
-                        <when value="UpSampling2D">
-                            <expand macro="layer_UpSampling2D" />
-                        </when>
-                        <when value="UpSampling3D">
-                            <expand macro="layer_UpSampling3D" />
-                        </when>
-                        <when value="ZeroPadding1D">
-                            <expand macro="layer_ZeroPadding1D" />
-                        </when>
-                        <when value="ZeroPadding2D">
-                            <expand macro="layer_ZeroPadding2D" />
-                        </when>
-                        <when value="ZeroPadding3D">
-                            <expand macro="layer_ZeroPadding3D" />
-                        </when>
-                        <when value="MaxPooling1D">
-                            <expand macro="layer_MaxPooling1D" />
-                        </when>
-                        <when value="MaxPooling2D">
-                            <expand macro="layer_MaxPooling2D" />
-                        </when>
-                        <when value="MaxPooling3D">
-                            <expand macro="layer_MaxPooling3D" />
-                        </when>
-                        <when value="AveragePooling1D">
-                            <expand macro="layer_AveragePooling1D" />
-                        </when>
-                        <when value="AveragePooling2D">
-                            <expand macro="layer_AveragePooling2D" />
-                        </when>
-                        <when value="AveragePooling3D">
-                            <expand macro="layer_AveragePooling3D" />
-                        </when>
-                        <when value="GlobalMaxPooling1D">
-                            <expand macro="layer_GlobalMaxPooling1D" />
-                        </when>
-                        <when value="GlobalAveragePooling1D">
-                            <expand macro="layer_GlobalAveragePooling1D" />
-                        </when>
-                        <when value="GlobalMaxPooling2D">
-                            <expand macro="layer_GlobalMaxPooling2D" />
-                        </when>
-                        <when value="GlobalAveragePooling2D">
-                            <expand macro="layer_GlobalAveragePooling2D" />
-                        </when>
-                        <when value="GlobalMaxPooling3D">
-                            <expand macro="layer_GlobalMaxPooling3D" />
-                        </when>
-                        <when value="GlobalAveragePooling3D">
-                            <expand macro="layer_GlobalAveragePooling3D" />
-                        </when>
-                        <when value="LocallyConnected1D">
-                            <expand macro="layer_LocallyConnected1D" />
-                        </when>
-                        <when value="LocallyConnected2D">
-                            <expand macro="layer_LocallyConnected2D" />
-                        </when>
-                        <when value="SimpleRNN">
-                            <expand macro="layer_SimpleRNN" />
-                        </when>
-                        <when value="GRU">
-                            <expand macro="layer_GRU" />
-                        </when>
-                        <when value="LSTM">
-                            <expand macro="layer_LSTM" />
-                        </when>
-                        <when value="ConvLSTM2D">
-                            <expand macro="layer_ConvLSTM2D" />
-                        </when>
-                        <when value="ConvLSTM2DCell">
-                            <expand macro="layer_ConvLSTM2DCell" />
-                        </when>
-                        <when value="SimpleRNNCell">
-                            <expand macro="layer_SimpleRNNCell" />
-                        </when>
-                        <when value="GRUCell">
-                            <expand macro="layer_GRUCell" />
-                        </when>
-                        <when value="LSTMCell">
-                            <expand macro="layer_LSTMCell" />
-                        </when>
-                        <when value="CuDNNGRU">
-                            <expand macro="layer_CuDNNGRU" />
-                        </when>
-                        <when value="CuDNNLSTM">
-                            <expand macro="layer_CuDNNLSTM" />
-                        </when>
-                        <when value="Embedding">
-                            <expand macro="layer_Embedding" />
-                        </when>
-                        <when value="LeakyReLU">
-                            <expand macro="layer_LeakyReLU" />
-                        </when>
-                        <when value="PReLU">
-                            <expand macro="layer_PReLU" />
-                        </when>
-                        <when value="ELU">
-                            <expand macro="layer_ELU" />
-                        </when>
-                        <when value="ThresholdedReLU">
-                            <expand macro="layer_ThresholdedReLU" />
-                        </when>
-                        <when value="Softmax">
-                            <expand macro="layer_Softmax" />
-                        </when>
-                        <when value="ReLU">
-                            <expand macro="layer_ReLU" />
-                        </when>
-                        <when value="BatchNormalization">
-                            <expand macro="layer_BatchNormalization" />
-                        </when>
-                        <when value="GaussianNoise">
-                            <expand macro="layer_GaussianNoise" />
-                        </when>
-                        <when value="GaussianDropout">
-                            <expand macro="layer_GaussianDropout" />
-                        </when>
-                        <when value="AlphaDropout">
-                            <expand macro="layer_AlphaDropout" />
-                        </when>
-                    </conditional>
-                </repeat>
+            <when value="Dense">
+              <expand macro="layer_Dense" />
+            </when>
+            <when value="Activation">
+              <expand macro="keras_activations" />
+            </when>
+            <when value="Dropout">
+              <expand macro="layer_Dropout" />
+            </when>
+            <when value="Flatten">
+              <expand macro="layer_Flatten" />
+            </when>
+            <when value="Reshape">
+              <expand macro="layer_Reshape" />
+            </when>
+            <when value="Permute">
+              <expand macro="layer_Permute" />
+            </when>
+            <when value="RepeatVector">
+              <expand macro="layer_RepeatVector" />
+            </when>
+            <when value="ActivityRegularization">
+              <expand macro="layer_ActivityRegularization" />
+            </when>
+            <when value="Masking">
+              <expand macro="layer_Masking" />
+            </when>
+            <when value="SpatialDropout1D">
+              <expand macro="layer_SpatialDropout1D" />
+            </when>
+            <when value="SpatialDropout2D">
+              <expand macro="layer_SpatialDropout2D" />
+            </when>
+            <when value="SpatialDropout3D">
+              <expand macro="layer_SpatialDropout3D" />
+            </when>
+            <when value="Conv1D">
+              <expand macro="layer_Conv1D" />
+            </when>
+            <when value="Conv2D">
+              <expand macro="layer_Conv2D" />
+            </when>
+            <when value="SeparableConv1D">
+              <expand macro="layer_SeparableConv1D" />
+            </when>
+            <when value="SeparableConv2D">
+              <expand macro="layer_SeparableConv2D" />
+            </when>
+            <when value="DepthwiseConv2D">
+              <expand macro="layer_DepthwiseConv2D" />
+            </when>
+            <when value="Conv2DTranspose">
+              <expand macro="layer_Conv2DTranspose" />
+            </when>
+            <when value="Conv3D">
+              <expand macro="layer_Conv3D" />
+            </when>
+            <when value="Conv3DTranspose">
+              <expand macro="layer_Conv3DTranspose" />
+            </when>
+            <when value="Cropping1D">
+              <expand macro="layer_Cropping1D" />
+            </when>
+            <when value="Cropping2D">
+              <expand macro="layer_Cropping2D" />
+            </when>
+            <when value="Cropping3D">
+              <expand macro="layer_Cropping3D" />
+            </when>
+            <when value="UpSampling1D">
+              <expand macro="layer_UpSampling1D" />
+            </when>
+            <when value="UpSampling2D">
+              <expand macro="layer_UpSampling2D" />
+            </when>
+            <when value="UpSampling3D">
+              <expand macro="layer_UpSampling3D" />
+            </when>
+            <when value="ZeroPadding1D">
+              <expand macro="layer_ZeroPadding1D" />
+            </when>
+            <when value="ZeroPadding2D">
+              <expand macro="layer_ZeroPadding2D" />
+            </when>
+            <when value="ZeroPadding3D">
+              <expand macro="layer_ZeroPadding3D" />
+            </when>
+            <when value="MaxPooling1D">
+              <expand macro="layer_MaxPooling1D" />
+            </when>
+            <when value="MaxPooling2D">
+              <expand macro="layer_MaxPooling2D" />
+            </when>
+            <when value="MaxPooling3D">
+              <expand macro="layer_MaxPooling3D" />
+            </when>
+            <when value="AveragePooling1D">
+              <expand macro="layer_AveragePooling1D" />
+            </when>
+            <when value="AveragePooling2D">
+              <expand macro="layer_AveragePooling2D" />
+            </when>
+            <when value="AveragePooling3D">
+              <expand macro="layer_AveragePooling3D" />
+            </when>
+            <when value="GlobalMaxPooling1D">
+              <expand macro="layer_GlobalMaxPooling1D" />
+            </when>
+            <when value="GlobalAveragePooling1D">
+              <expand macro="layer_GlobalAveragePooling1D" />
+            </when>
+            <when value="GlobalMaxPooling2D">
+              <expand macro="layer_GlobalMaxPooling2D" />
+            </when>
+            <when value="GlobalAveragePooling2D">
+              <expand macro="layer_GlobalAveragePooling2D" />
+            </when>
+            <when value="GlobalMaxPooling3D">
+              <expand macro="layer_GlobalMaxPooling3D" />
+            </when>
+            <when value="GlobalAveragePooling3D">
+              <expand macro="layer_GlobalAveragePooling3D" />
+            </when>
+            <when value="LocallyConnected1D">
+              <expand macro="layer_LocallyConnected1D" />
+            </when>
+            <when value="LocallyConnected2D">
+              <expand macro="layer_LocallyConnected2D" />
+            </when>
+            <when value="SimpleRNN">
+              <expand macro="layer_SimpleRNN" />
+            </when>
+            <when value="GRU">
+              <expand macro="layer_GRU" />
+            </when>
+            <when value="LSTM">
+              <expand macro="layer_LSTM" />
+            </when>
+            <when value="ConvLSTM2D">
+              <expand macro="layer_ConvLSTM2D" />
+            </when>
+            <when value="ConvLSTM2DCell">
+              <expand macro="layer_ConvLSTM2DCell" />
+            </when>
+            <when value="SimpleRNNCell">
+              <expand macro="layer_SimpleRNNCell" />
+            </when>
+            <when value="GRUCell">
+              <expand macro="layer_GRUCell" />
+            </when>
+            <when value="LSTMCell">
+              <expand macro="layer_LSTMCell" />
+            </when>
+            <when value="CuDNNGRU">
+              <expand macro="layer_CuDNNGRU" />
+            </when>
+            <when value="CuDNNLSTM">
+              <expand macro="layer_CuDNNLSTM" />
+            </when>
+            <when value="Embedding">
+              <expand macro="layer_Embedding" />
+            </when>
+            <when value="LeakyReLU">
+              <expand macro="layer_LeakyReLU" />
+            </when>
+            <when value="PReLU">
+              <expand macro="layer_PReLU" />
+            </when>
+            <when value="ELU">
+              <expand macro="layer_ELU" />
+            </when>
+            <when value="ThresholdedReLU">
+              <expand macro="layer_ThresholdedReLU" />
+            </when>
+            <when value="Softmax">
+              <expand macro="layer_Softmax" />
+            </when>
+            <when value="ReLU">
+              <expand macro="layer_ReLU" />
+            </when>
+            <when value="BatchNormalization">
+              <expand macro="layer_BatchNormalization" />
+            </when>
+            <when value="GaussianNoise">
+              <expand macro="layer_GaussianNoise" />
+            </when>
+            <when value="GaussianDropout">
+              <expand macro="layer_GaussianDropout" />
+            </when>
+            <when value="AlphaDropout">
+              <expand macro="layer_AlphaDropout" />
+            </when>
+          </conditional>
+        </repeat>
+      </when>
+      <when value="functional">
+        <repeat name="layers" min="1" max="500" title="LAYER">
+          <conditional name="layer_selection">
+            <param name="layer_type" type="select" label="Choose the type of layer">
+              <option value="Input">Input</option>
+              <expand macro="keras_layer_types_core" />
+              <expand macro="keras_layer_types_Convolutional" />
+              <expand macro="keras_layer_types_Pooling" />
+              <expand macro="keras_layer_types_locally_connected" />
+              <expand macro="keras_layer_types_recurrent" />
+              <expand macro="keras_layer_types_merge" />
+              <expand macro="keras_layer_types_embedding" />
+              <expand macro="keras_layer_types_advanced_activations" />
+              <expand macro="keras_layer_types_normalization" />
+              <expand macro="keras_layer_types_noise" />
+            </param>
+            <when value="Input">
+              <expand macro="layer_Input" />
+            </when>
+            <when value="Dense">
+              <expand macro="layer_Dense">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Activation">
+              <expand macro="keras_activations">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Dropout">
+              <expand macro="layer_Dropout">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Flatten">
+              <expand macro="layer_Flatten">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Reshape">
+              <expand macro="layer_Reshape">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Permute">
+              <expand macro="layer_Permute">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="RepeatVector">
+              <expand macro="layer_RepeatVector">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ActivityRegularization">
+              <expand macro="layer_ActivityRegularization">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Masking">
+              <expand macro="layer_Masking">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SpatialDropout1D">
+              <expand macro="layer_SpatialDropout1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SpatialDropout2D">
+              <expand macro="layer_SpatialDropout2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SpatialDropout3D">
+              <expand macro="layer_SpatialDropout3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Conv1D">
+              <expand macro="layer_Conv1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Conv2D">
+              <expand macro="layer_Conv2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SeparableConv1D">
+              <expand macro="layer_SeparableConv1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SeparableConv2D">
+              <expand macro="layer_SeparableConv2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="DepthwiseConv2D">
+              <expand macro="layer_DepthwiseConv2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Conv2DTranspose">
+              <expand macro="layer_Conv2DTranspose">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Conv3D">
+              <expand macro="layer_Conv3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Conv3DTranspose">
+              <expand macro="layer_Conv3DTranspose">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Cropping1D">
+              <expand macro="layer_Cropping1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Cropping2D">
+              <expand macro="layer_Cropping2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Cropping3D">
+              <expand macro="layer_Cropping3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="UpSampling1D">
+              <expand macro="layer_UpSampling1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="UpSampling2D">
+              <expand macro="layer_UpSampling2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="UpSampling3D">
+              <expand macro="layer_UpSampling3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ZeroPadding1D">
+              <expand macro="layer_ZeroPadding1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ZeroPadding2D">
+              <expand macro="layer_ZeroPadding2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ZeroPadding3D">
+              <expand macro="layer_ZeroPadding3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="MaxPooling1D">
+              <expand macro="layer_MaxPooling1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="MaxPooling2D">
+              <expand macro="layer_MaxPooling2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="MaxPooling3D">
+              <expand macro="layer_MaxPooling3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="AveragePooling1D">
+              <expand macro="layer_AveragePooling1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="AveragePooling2D">
+              <expand macro="layer_AveragePooling2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="AveragePooling3D">
+              <expand macro="layer_AveragePooling3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GlobalMaxPooling1D">
+              <expand macro="layer_GlobalMaxPooling1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GlobalAveragePooling1D">
+              <expand macro="layer_GlobalAveragePooling1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GlobalMaxPooling2D">
+              <expand macro="layer_GlobalMaxPooling2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
             </when>
-            <when value="functional">
-                <repeat name="layers" min="1" max="500" title="LAYER">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" type="select" label="Choose the type of layer">
-                            <option value="Input">Input</option>
-                            <expand macro="keras_layer_types_core" />
-                            <expand macro="keras_layer_types_Convolutional" />
-                            <expand macro="keras_layer_types_Pooling" />
-                            <expand macro="keras_layer_types_locally_connected" />
-                            <expand macro="keras_layer_types_recurrent" />
-                            <expand macro="keras_layer_types_merge" />
-                            <expand macro="keras_layer_types_embedding" />
-                            <expand macro="keras_layer_types_advanced_activations" />
-                            <expand macro="keras_layer_types_normalization" />
-                            <expand macro="keras_layer_types_noise" />
-                        </param>
-                        <when value="Input">
-                            <expand macro="layer_Input" />
-                        </when>
-                        <when value="Dense">
-                            <expand macro="layer_Dense">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Activation">
-                            <expand macro="keras_activations">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Dropout">
-                            <expand macro="layer_Dropout">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Flatten">
-                            <expand macro="layer_Flatten">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Reshape">
-                            <expand macro="layer_Reshape">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Permute">
-                            <expand macro="layer_Permute">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="RepeatVector">
-                            <expand macro="layer_RepeatVector">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ActivityRegularization">
-                            <expand macro="layer_ActivityRegularization">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Masking">
-                            <expand macro="layer_Masking">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SpatialDropout1D">
-                            <expand macro="layer_SpatialDropout1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SpatialDropout2D">
-                            <expand macro="layer_SpatialDropout2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SpatialDropout3D">
-                            <expand macro="layer_SpatialDropout3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Conv1D">
-                            <expand macro="layer_Conv1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Conv2D">
-                            <expand macro="layer_Conv2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SeparableConv1D">
-                            <expand macro="layer_SeparableConv1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SeparableConv2D">
-                            <expand macro="layer_SeparableConv2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="DepthwiseConv2D">
-                            <expand macro="layer_DepthwiseConv2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Conv2DTranspose">
-                            <expand macro="layer_Conv2DTranspose">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Conv3D">
-                            <expand macro="layer_Conv3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Conv3DTranspose">
-                            <expand macro="layer_Conv3DTranspose">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Cropping1D">
-                            <expand macro="layer_Cropping1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Cropping2D">
-                            <expand macro="layer_Cropping2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Cropping3D">
-                            <expand macro="layer_Cropping3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="UpSampling1D">
-                            <expand macro="layer_UpSampling1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="UpSampling2D">
-                            <expand macro="layer_UpSampling2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="UpSampling3D">
-                            <expand macro="layer_UpSampling3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ZeroPadding1D">
-                            <expand macro="layer_ZeroPadding1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ZeroPadding2D">
-                            <expand macro="layer_ZeroPadding2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ZeroPadding3D">
-                            <expand macro="layer_ZeroPadding3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="MaxPooling1D">
-                            <expand macro="layer_MaxPooling1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="MaxPooling2D">
-                            <expand macro="layer_MaxPooling2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="MaxPooling3D">
-                            <expand macro="layer_MaxPooling3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="AveragePooling1D">
-                            <expand macro="layer_AveragePooling1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="AveragePooling2D">
-                            <expand macro="layer_AveragePooling2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="AveragePooling3D">
-                            <expand macro="layer_AveragePooling3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalMaxPooling1D">
-                            <expand macro="layer_GlobalMaxPooling1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalAveragePooling1D">
-                            <expand macro="layer_GlobalAveragePooling1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalMaxPooling2D">
-                            <expand macro="layer_GlobalMaxPooling2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalAveragePooling2D">
-                            <expand macro="layer_GlobalAveragePooling2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalMaxPooling3D">
-                            <expand macro="layer_GlobalMaxPooling3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GlobalAveragePooling3D">
-                            <expand macro="layer_GlobalAveragePooling3D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="LocallyConnected1D">
-                            <expand macro="layer_LocallyConnected1D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="LocallyConnected2D">
-                            <expand macro="layer_LocallyConnected2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SimpleRNN">
-                            <expand macro="layer_SimpleRNN">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GRU">
-                            <expand macro="layer_GRU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="LSTM">
-                            <expand macro="layer_LSTM">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ConvLSTM2D">
-                            <expand macro="layer_ConvLSTM2D">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ConvLSTM2DCell">
-                            <expand macro="layer_ConvLSTM2DCell">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="SimpleRNNCell">
-                            <expand macro="layer_SimpleRNNCell">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GRUCell">
-                            <expand macro="layer_GRUCell">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="LSTMCell">
-                            <expand macro="layer_LSTMCell">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="CuDNNGRU">
-                            <expand macro="layer_CuDNNGRU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="CuDNNLSTM">
-                            <expand macro="layer_CuDNNLSTM">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Add">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Subtract">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Multiply">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Average">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Maximum">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Minimum">
-                            <expand macro="layer_merge" />
-                        </when>
-                        <when value="Concatenate">
-                            <expand macro="layer_Concatenate" />
-                        </when>
-                        <when value="Dot">
-                            <expand macro="layer_Dot" />
-                        </when>
-                        <when value="Embedding">
-                            <expand macro="layer_Embedding">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="LeakyReLU">
-                            <expand macro="layer_LeakyReLU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="PReLU">
-                            <expand macro="layer_PReLU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ELU">
-                            <expand macro="layer_ELU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ThresholdedReLU">
-                            <expand macro="layer_ThresholdedReLU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="Softmax">
-                            <expand macro="layer_Softmax">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="ReLU">
-                            <expand macro="layer_ReLU">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="BatchNormalization">
-                            <expand macro="layer_BatchNormalization">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GaussianNoise">
-                            <expand macro="layer_GaussianNoise">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="GaussianDropout">
-                            <expand macro="layer_GaussianDropout">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                        <when value="AlphaDropout">
-                            <expand macro="layer_AlphaDropout">
-                                <expand macro="inbound_nodes_index" />
-                            </expand>
-                        </when>
-                    </conditional>
-                </repeat>
-                <param name="input_layers" type="text" value="[]" label="Type the list of input layer indexes" help="List of integers. Find index number at the left top corner of layer configuration block.">
-                    <sanitizer>
-                        <valid initial="default">
-                            <add value="[" />
-                            <add value="]" />
-                        </valid>
-                    </sanitizer>
-                </param>
-                <param name="output_layers" type="text" value="[]" label="Type the list of output layer indexes" help="List of integers. Find index number at the left top corner of layer configuration block.">
-                    <sanitizer>
-                        <valid initial="default">
-                            <add value="[" />
-                            <add value="]" />
-                        </valid>
-                    </sanitizer>
-                </param>
+            <when value="GlobalAveragePooling2D">
+              <expand macro="layer_GlobalAveragePooling2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GlobalMaxPooling3D">
+              <expand macro="layer_GlobalMaxPooling3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GlobalAveragePooling3D">
+              <expand macro="layer_GlobalAveragePooling3D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="LocallyConnected1D">
+              <expand macro="layer_LocallyConnected1D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="LocallyConnected2D">
+              <expand macro="layer_LocallyConnected2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SimpleRNN">
+              <expand macro="layer_SimpleRNN">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GRU">
+              <expand macro="layer_GRU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="LSTM">
+              <expand macro="layer_LSTM">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ConvLSTM2D">
+              <expand macro="layer_ConvLSTM2D">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ConvLSTM2DCell">
+              <expand macro="layer_ConvLSTM2DCell">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="SimpleRNNCell">
+              <expand macro="layer_SimpleRNNCell">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GRUCell">
+              <expand macro="layer_GRUCell">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="LSTMCell">
+              <expand macro="layer_LSTMCell">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="CuDNNGRU">
+              <expand macro="layer_CuDNNGRU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="CuDNNLSTM">
+              <expand macro="layer_CuDNNLSTM">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Add">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Subtract">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Multiply">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Average">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Maximum">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Minimum">
+              <expand macro="layer_merge" />
+            </when>
+            <when value="Concatenate">
+              <expand macro="layer_Concatenate" />
+            </when>
+            <when value="Dot">
+              <expand macro="layer_Dot" />
+            </when>
+            <when value="Embedding">
+              <expand macro="layer_Embedding">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="LeakyReLU">
+              <expand macro="layer_LeakyReLU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="PReLU">
+              <expand macro="layer_PReLU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ELU">
+              <expand macro="layer_ELU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ThresholdedReLU">
+              <expand macro="layer_ThresholdedReLU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="Softmax">
+              <expand macro="layer_Softmax">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="ReLU">
+              <expand macro="layer_ReLU">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="BatchNormalization">
+              <expand macro="layer_BatchNormalization">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GaussianNoise">
+              <expand macro="layer_GaussianNoise">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="GaussianDropout">
+              <expand macro="layer_GaussianDropout">
+                <expand macro="inbound_nodes_index" />
+              </expand>
+            </when>
+            <when value="AlphaDropout">
+              <expand macro="layer_AlphaDropout">
+                <expand macro="inbound_nodes_index" />
+              </expand>
             </when>
-        </conditional>
-    </inputs>
-    <outputs>
-        <data format="json" name="outfile" label="Keras Model Config" />
-    </outputs>
-    <tests>
-        <test>
-            <conditional name="model_selection">
-                <param name="model_type" value="sequential" />
-                <param name="input_shape" value="(784, )" />
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="32" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Activation" />
-                        <param name="activation" value="relu" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="10" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Activation" />
-                        <param name="activation" value="softmax" />
-                    </conditional>
-                </repeat>
-            </conditional>
-            <output name="outfile" file="keras01.json" />
-        </test>
-        <test>
-            <conditional name="model_selection">
-                <param name="model_type" value="functional" />
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Input" />
-                        <param name="shape" value="(100, )" />
-                        <param name="name" value="main_input" />
-                        <param name="dtype" value="int32" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Embedding" />
-                        <param name="input_dim" value="10000" />
-                        <param name="output_dim" value="512" />
-                        <param name="kwargs" value="input_length=100" />
-                        <param name="inbound_nodes" value="1" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="LSTM" />
-                        <param name="units" value="32" />
-                        <param name="inbound_nodes" value="2" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="1" />
-                        <param name="activation" value="sigmoid" />
-                        <param name="inbound_nodes" value="3" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Input" />
-                        <param name="shape" value="(5, )" />
-                        <param name="name" value="aux_input" />
-                        <param name="dtype" value="float32" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Concatenate" />
-                        <param name="merging_layers" value="[4, 5]" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="64" />
-                        <param name="activation" value="relu" />
-                        <param name="inbound_nodes" value="6" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="64" />
-                        <param name="activation" value="relu" />
-                        <param name="inbound_nodes" value="7" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="64" />
-                        <param name="activation" value="relu" />
-                        <param name="inbound_nodes" value="8" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="1" />
-                        <param name="activation" value="sigmoid" />
-                        <param name="inbound_nodes" value="9" />
-                    </conditional>
-                </repeat>
-                <param name="input_layers" value="[1, 5]" />
-                <param name="output_layers" value="[4, 10]" />
-            </conditional>
-            <output name="outfile" file="keras02.json" />
-        </test>
-        <test>
-            <conditional name="model_selection">
-                <param name="model_type" value="sequential" />
-                <param name="input_shape" value="(17, )" />
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="32" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Activation" />
-                        <param name="activation" value="linear" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Dense" />
-                        <param name="units" value="1" />
-                    </conditional>
-                </repeat>
-                <repeat name="layers">
-                    <conditional name="layer_selection">
-                        <param name="layer_type" value="Activation" />
-                        <param name="activation" value="linear" />
-                    </conditional>
-                </repeat>
-            </conditional>
-            <output name="outfile" file="keras04.json" />
-        </test>
-    </tests>
-    <help>
-        <![CDATA[
+          </conditional>
+        </repeat>
+        <param name="input_layers" type="text" value="[]" label="Type the list of input layer indexes"
+                help="List of integers. Find index number at the left top corner of layer configuration block.">
+          <sanitizer>
+            <valid initial="default">
+              <add value="[" />
+              <add value="]" />
+            </valid>
+          </sanitizer>
+        </param>
+        <param name="output_layers" type="text" value="[]" label="Type the list of output layer indexes"
+                help="List of integers. Find index number at the left top corner of layer configuration block.">
+          <sanitizer>
+            <valid initial="default">
+              <add value="[" />
+              <add value="]" />
+            </valid>
+          </sanitizer>
+        </param>
+      </when>
+    </conditional>
+  </inputs>
+  <outputs>
+    <data format="json" name="outfile" label="Keras Model Config" />
+  </outputs>
+  <tests>
+    <test>
+      <conditional name="model_selection">
+        <param name="model_type" value="sequential" />
+        <param name="input_shape" value="(32, 32, 3)" />
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Conv2D" />
+            <param name="filters" value="32" />
+            <param name="kernel_size" value="(3, 3)" />
+            <param name="activation" value="relu" />
+            <param name="kwargs" value="padding='same'" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="MaxPooling2D" />
+            <param name="pool_size" value="(2, 2)" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dropout" />
+            <param name="rate" value="0.25" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Conv2D" />
+            <param name="filters" value="64" />
+            <param name="kernel_size" value="(3, 3)" />
+            <param name="activation" value="relu" />
+            <param name="kwargs" value="padding='same'" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="MaxPooling2D" />
+            <param name="pool_size" value="(2, 2)" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dropout" />
+            <param name="rate" value="0.25" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Flatten" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="512" />
+            <param name="activation" value="relu" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dropout" />
+            <param name="rate" value="0.5" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="10" />
+            <param name="activation" value="softmax" />
+          </conditional>
+        </repeat>
+      </conditional>
+      <output name="outfile" file="keras05.json" />
+    </test>
+    <test>
+      <conditional name="model_selection">
+        <param name="model_type" value="sequential" />
+        <param name="input_shape" value="(784, )" />
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="32" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Activation" />
+            <param name="activation" value="relu" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="10" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Activation" />
+            <param name="activation" value="softmax" />
+          </conditional>
+        </repeat>
+      </conditional>
+      <output name="outfile" file="keras01.json" />
+    </test>
+    <test>
+      <conditional name="model_selection">
+        <param name="model_type" value="functional" />
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Input" />
+            <param name="shape" value="(100, )" />
+            <param name="name" value="main_input" />
+            <param name="dtype" value="int32" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Embedding" />
+            <param name="input_dim" value="10000" />
+            <param name="output_dim" value="512" />
+            <param name="kwargs" value="input_length=100" />
+            <param name="inbound_nodes" value="1" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="LSTM" />
+            <param name="units" value="32" />
+            <param name="inbound_nodes" value="2" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="1" />
+            <param name="activation" value="sigmoid" />
+            <param name="inbound_nodes" value="3" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Input" />
+            <param name="shape" value="(5, )" />
+            <param name="name" value="aux_input" />
+            <param name="dtype" value="float32" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Concatenate" />
+            <param name="merging_layers" value="[4, 5]" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="64" />
+            <param name="activation" value="relu" />
+            <param name="inbound_nodes" value="6" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="64" />
+            <param name="activation" value="relu" />
+            <param name="inbound_nodes" value="7" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="64" />
+            <param name="activation" value="relu" />
+            <param name="inbound_nodes" value="8" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="1" />
+            <param name="activation" value="sigmoid" />
+            <param name="inbound_nodes" value="9" />
+          </conditional>
+        </repeat>
+        <param name="input_layers" value="[1, 5]" />
+        <param name="output_layers" value="[4, 10]" />
+      </conditional>
+      <output name="outfile" file="keras02.json" />
+    </test>
+    <test>
+      <conditional name="model_selection">
+        <param name="model_type" value="sequential" />
+        <param name="input_shape" value="(17, )" />
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="32" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Activation" />
+            <param name="activation" value="linear" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="1" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Activation" />
+            <param name="activation" value="linear" />
+          </conditional>
+        </repeat>
+      </conditional>
+      <output name="outfile" file="keras04.json" />
+    </test>
+    <test>
+      <conditional name="model_selection">
+        <param name="model_type" value="sequential" />
+        <param name="input_shape" value="(17, )" />
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="100" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dropout" />
+            <param name="rate" value="0.1" />
+          </conditional>
+        </repeat>
+        <repeat name="layers">
+          <conditional name="layer_selection">
+            <param name="layer_type" value="Dense" />
+            <param name="units" value="1" />
+          </conditional>
+        </repeat>
+      </conditional>
+      <output name="outfile" file="keras03.json" />
+    </test>
+  </tests>
+  <help>
+      <![CDATA[
 **Help**
 
 **What it does**
@@ -792,9 +893,9 @@
 
 
       ]]>
-    </help>
-    <citations>
-        <expand macro="keras_citation" />
-        <expand macro="tensorflow_citation" />
-    </citations>
+  </help>
+  <citations>
+    <expand macro="keras_citation" />
+    <expand macro="tensorflow_citation" />
+  </citations>
 </tool>