Mercurial > repos > goeckslab > image_learner
comparison image_learner.xml @ 2:186424a7eca7 draft
planemo upload for repository https://github.com/goeckslab/gleam.git commit 91fa4aba245520fc0680088a07cead66bcfd4ed2
author | goeckslab |
---|---|
date | Thu, 03 Jul 2025 20:43:24 +0000 |
parents | 39202fe5cf97 |
children | 2c3a3dfaf1a9 |
comparison
equal
deleted
inserted
replaced
1:39202fe5cf97 | 2:186424a7eca7 |
---|---|
42 --learning-rate "$learning_rate" | 42 --learning-rate "$learning_rate" |
43 #end if | 43 #end if |
44 #if $batch_size_define == "true" | 44 #if $batch_size_define == "true" |
45 --batch-size "$batch_size" | 45 --batch-size "$batch_size" |
46 #end if | 46 #end if |
47 --split-probabilities "$train_split" "$val_split" "$test_split" | 47 --split-probabilities "$train_split" "$val_split" "$test_split" |
48 #end if | 48 #end if |
49 --random-seed "$random_seed" | 49 #if $augmentation |
50 --augmentation "$augmentation" | |
51 #end if | |
52 --random-seed "$random_seed" | |
50 --output-dir "." && | 53 --output-dir "." && |
51 | 54 |
52 mkdir -p '$output_model.extra_files_path' && | 55 mkdir -p '$output_model.extra_files_path' && |
53 cp -r experiment_run/model/*.json experiment_run/model/model_weights '$output_model.extra_files_path' && | 56 cp -r experiment_run/model/*.json experiment_run/model/model_weights '$output_model.extra_files_path' && |
54 | 57 |
55 echo "Image Learner Classification Experiment is Done!" | 58 echo "Image Learner Classification Experiment is Done!" |
56 ]]> | 59 ]]> |
57 </command> | 60 </command> |
58 | 61 |
59 <inputs> | 62 <inputs> |
60 <param argument="input_csv" type="data" format="csv" optional="false" label="the metadata csv containing image_path column, label column and optional split column" /> | 63 <param argument="input_csv" type="data" format="csv" optional="false" label="the metadata csv containing image_path column, label column and optional split column" /> |
61 <param name="image_zip" type="data" format="zip" optional="false" label="Image zip" help="Image zip file containing your image data"/> | 64 <param name="image_zip" type="data" format="zip" optional="false" label="Image zip" help="Image zip file containing your image data"/> |
62 <param name="model_name" type="select" optional="false" label="Select a model for your experiment" > | 65 <param name="model_name" type="select" optional="false" label="Select a model for your experiment" > |
63 | 66 |
64 <option value="resnet18">Resnet18</option> | 67 <option value="resnet18">Resnet18</option> |
65 <option value="resnet34">Resnet34</option> | 68 <option value="resnet34">Resnet34</option> |
66 <option value="resnet50">Resnet50</option> | 69 <option value="resnet50">Resnet50</option> |
67 <option value="resnet101">Resnet101</option> | 70 <option value="resnet101">Resnet101</option> |
68 <option value="resnet152">Resnet152</option> | 71 <option value="resnet152">Resnet152</option> |
138 </param> | 141 </param> |
139 | 142 |
140 <conditional name="scratch_fine_tune"> | 143 <conditional name="scratch_fine_tune"> |
141 <param name="use_pretrained" type="select" | 144 <param name="use_pretrained" type="select" |
142 label="Use pretrained weights?" | 145 label="Use pretrained weights?" |
143 help="If select no, the encoder, combiner, and decoder will all be initialized and trained from scratch. | 146 help="If select no, the encoder, combiner, and decoder will all be initialized and trained from scratch. (e.g. when your images are very different from ImageNet or no suitable pretrained model exists.)"> |
144 (e.g. when your images are very different from ImageNet or no suitable pretrained model exists.)"> | |
145 <option value="false">No</option> | 147 <option value="false">No</option> |
146 <option value="true" selected="true">Yes</option> | 148 <option value="true" selected="true">Yes</option> |
147 </param> | 149 </param> |
148 <when value="true"> | 150 <when value="true"> |
149 <param name="fine_tune" type="select" label="Fine tune the encoder?" | 151 <param name="fine_tune" type="select" label="Fine tune the encoder?" |
154 </when> | 156 </when> |
155 <when value="false"> | 157 <when value="false"> |
156 <!-- No additional parameters to show if the user selects 'No' --> | 158 <!-- No additional parameters to show if the user selects 'No' --> |
157 </when> | 159 </when> |
158 </conditional> | 160 </conditional> |
161 <param argument="augmentation" | |
162 name="augmentation" | |
163 type="select" | |
164 multiple="true" | |
165 display="checkboxes" | |
166 label="Image Augmentation" | |
167 help="Pick any combination of augmentations to apply"> | |
168 <option value="random_horizontal_flip">Random Horizontal Flip</option> | |
169 <option value="random_vertical_flip">Random Vertical Flip</option> | |
170 <option value="random_rotate">Random Rotate</option> | |
171 <option value="random_blur">Random Blur</option> | |
172 <option value="random_brightness">Random Brightness</option> | |
173 <option value="random_contrast">Random Contrast</option> | |
174 </param> | |
159 <param argument="random_seed" type="integer" value="42" optional="true" label="Random seed (set for reproducibility)" min="0" max="999999"/> | 175 <param argument="random_seed" type="integer" value="42" optional="true" label="Random seed (set for reproducibility)" min="0" max="999999"/> |
160 <conditional name="advanced_settings"> | 176 <conditional name="advanced_settings"> |
161 <param name="customize_defaults" type="select" label="Customize Default Settings?" help="Select yes if you want to customize the default settings of the experiment."> | 177 <param name="customize_defaults" type="select" label="Customize Default Settings?" help="Select yes if you want to customize the default settings of the experiment."> |
162 <option value="false" selected="true">No</option> | 178 <option value="false" selected="true">No</option> |
163 <option value="true">Yes</option> | 179 <option value="true">Yes</option> |
203 help="Fraction of data for testing (e.g., 0.2) train split + val split + test split should = 1."/> | 219 help="Fraction of data for testing (e.g., 0.2) train split + val split + test split should = 1."/> |
204 </when> | 220 </when> |
205 <when value="false"> | 221 <when value="false"> |
206 <!-- No additional parameters to show if the user selects 'No' --> | 222 <!-- No additional parameters to show if the user selects 'No' --> |
207 </when> | 223 </when> |
208 </conditional> | 224 </conditional> |
209 </inputs> | 225 </inputs> |
210 <outputs> | 226 <outputs> |
211 <data format="ludwig_model" name="output_model" label="${tool.name} trained model on ${on_string}" /> | 227 <data format="ludwig_model" name="output_model" label="${tool.name} trained model on ${on_string}" /> |
212 <data format="html" name="output_report" from_work_dir="image_classification_results_report.html" label="${tool.name} report on ${on_string}" /> | 228 <data format="html" name="output_report" from_work_dir="image_classification_results_report.html" label="${tool.name} report on ${on_string}" /> |
213 <collection type="list" name="output_pred_csv" label="${tool.name} predictions CSVs/experiment stats/plots on ${on_string}" > | 229 <collection type="list" name="output_pred_csv" label="${tool.name} predictions CSVs/experiment stats/plots on ${on_string}" > |
214 <discover_datasets pattern="(?P<designation>predictions\.csv)" format="csv" directory="experiment_run" /> | 230 <discover_datasets pattern="(?P<designation>predictions\.csv)" format="csv" directory="experiment_run" /> |
236 <has_n_columns n="1" /> | 252 <has_n_columns n="1" /> |
237 </assert_contents> | 253 </assert_contents> |
238 </element> | 254 </element> |
239 </output_collection> | 255 </output_collection> |
240 </test> | 256 </test> |
257 <test expect_num_outputs="3"> | |
258 <param name="input_csv" value="mnist_subset.csv" ftype="csv" /> | |
259 <param name="image_zip" value="mnist_subset.zip" ftype="zip" /> | |
260 <param name="model_name" value="resnet18" /> | |
261 <param name="augmentation" value="random_horizontal_flip,random_vertical_flip,random_rotate" /> | |
262 <output name="output_report"> | |
263 <assert_contents> | |
264 <has_text text="Results Summary" /> | |
265 <has_text text="Train/Validation Results" /> | |
266 <has_text text="Test Results" /> | |
267 </assert_contents> | |
268 </output> | |
269 | |
270 <output_collection name="output_pred_csv" type="list" > | |
271 <element name="predictions.csv" > | |
272 <assert_contents> | |
273 <has_n_columns n="1" /> | |
274 </assert_contents> | |
275 </element> | |
276 </output_collection> | |
277 </test> | |
278 <test expect_num_outputs="3"> | |
279 <param name="input_csv" value="utkface_labels.csv" ftype="csv" /> | |
280 <param name="image_zip" value="age_regression.zip" ftype="zip" /> | |
281 <param name="model_name" value="resnet18" /> | |
282 <output name="output_report"> | |
283 <assert_contents> | |
284 <has_text text="Results Summary" /> | |
285 <has_text text="Train/Validation Results" /> | |
286 <has_text text="Test Results" /> | |
287 </assert_contents> | |
288 </output> | |
289 <output name="output_report" file="expected_regression.html" compare="sim_size"/> | |
290 | |
291 <output_collection name="output_pred_csv" type="list" > | |
292 <element name="predictions.csv" > | |
293 <assert_contents> | |
294 <has_n_columns n="1" /> | |
295 </assert_contents> | |
296 </element> | |
297 </output_collection> | |
298 </test> | |
241 </tests> | 299 </tests> |
242 <help> | 300 <help> |
243 <![CDATA[ | 301 <![CDATA[ |
244 **What it does** | 302 **What it does** |
245 Image Learner for Classification: trains and evaluates a image classification model. | 303 Image Learner for Classification: trains and evaluates a image classification model. |
246 It uses the metadata csv to find the image paths and labels. | 304 It uses the metadata csv to find the image paths and labels. |
247 The metadata csv should contain a column with the name 'image_path' and a column with the name 'label'. | 305 The metadata csv should contain a column with the name 'image_path' and a column with the name 'label'. |
248 Optionally, you can also add a column with the name 'split' to specify which split each row belongs to (train, val, test). | 306 Optionally, you can also add a column with the name 'split' to specify which split each row belongs to (train, val, test). |
249 If you do not provide a split column, the tool will automatically split the data into train, val, and test sets based on the proportions you specify or [0.7, 0.1, 0.2] by default. | 307 If you do not provide a split column, the tool will automatically split the data into train, val, and test sets based on the proportions you specify or [0.7, 0.1, 0.2] by default. |
308 | |
309 **If the selected label column has more than 10 unique values, the tool will automatically treat the task as a regression problem and apply appropriate metrics (e.g., MSE, RMSE, R²).** | |
250 | 310 |
251 | 311 |
252 **Outputs** | 312 **Outputs** |
253 The tool will output a trained model in the form of a ludwig_model file, | 313 The tool will output a trained model in the form of a ludwig_model file, |
254 a report in the form of an HTML file, and a collection of CSV/json/png files containing the predictions, experiment stats and visualizations. | 314 a report in the form of an HTML file, and a collection of CSV/json/png files containing the predictions, experiment stats and visualizations. |