1212 ModelSize ,
1313 SamplingAlgorithmType ,
1414 StochasticOptimizer ,
15+ LogTrainingMetrics ,
16+ LogValidationLoss ,
1517)
1618from azure .ai .ml ._restclient .v2023_04_01_preview .models import UserIdentity as RestUserIdentity
1719from azure .ai .ml ._restclient .v2023_04_01_preview .models import ValidationMetricType
@@ -128,24 +130,38 @@ def _check_data_type(data, expected_type, expected_path, msg):
128130 "settings, expected" ,
129131 [
130132 (
131- ("adam" , "warmup_cosine" , "coco_voc" , "large" ),
133+ ("adam" , "warmup_cosine" , "coco_voc" , "large" , "enable" , "enable" ),
132134 (
133135 StochasticOptimizer .ADAM ,
134136 LearningRateScheduler .WARMUP_COSINE ,
135137 ValidationMetricType .COCO_VOC ,
136138 ModelSize .LARGE ,
139+ LogTrainingMetrics .ENABLE ,
140+ LogValidationLoss .ENABLE ,
137141 ),
138142 ),
139143 (
140- ("Adam" , "WarmupCosine" , "CocoVoc" , "Large" ),
144+ ("Adam" , "WarmupCosine" , "CocoVoc" , "Large" , "Enable" , "Enable" ),
141145 (
142146 StochasticOptimizer .ADAM ,
143147 LearningRateScheduler .WARMUP_COSINE ,
144148 ValidationMetricType .COCO_VOC ,
145149 ModelSize .LARGE ,
150+ LogTrainingMetrics .ENABLE ,
151+ LogValidationLoss .ENABLE ,
152+ ),
153+ ),
154+ (
155+ (None , None , "coco_voc" , "large" , "enable" , "enable" ),
156+ (
157+ None ,
158+ None ,
159+ ValidationMetricType .COCO_VOC ,
160+ ModelSize .LARGE ,
161+ LogTrainingMetrics .ENABLE ,
162+ LogValidationLoss .ENABLE ,
146163 ),
147164 ),
148- ((None , None , "coco_voc" , "large" ), (None , None , ValidationMetricType .COCO_VOC , ModelSize .LARGE )),
149165 ],
150166 ids = ["snake case" , "camel case" , "with None" ],
151167 )
@@ -159,25 +175,33 @@ def test_image_set_training_parameters_with_valid_values(self, settings, expecte
159175 learning_rate_scheduler = settings [1 ],
160176 validation_metric_type = settings [2 ],
161177 model_size = settings [3 ],
178+ log_training_metrics = settings [4 ],
179+ log_validation_loss = settings [5 ],
162180 )
163181 assert image_instance_segmentation_job .training_parameters .optimizer == expected [0 ]
164182 assert image_instance_segmentation_job .training_parameters .learning_rate_scheduler == expected [1 ]
165183 assert image_instance_segmentation_job .training_parameters .validation_metric_type == expected [2 ]
166184 assert image_instance_segmentation_job .training_parameters .model_size == expected [3 ]
185+ assert image_instance_segmentation_job .training_parameters .log_training_metrics == expected [4 ]
186+ assert image_instance_segmentation_job .training_parameters .log_validation_loss == expected [5 ]
167187
168188 @pytest .mark .parametrize (
169189 "settings, expected" ,
170190 [
171- (("adamW" , None , None , None ), pytest .raises (KeyError )),
172- ((None , "Warmup_Cosine" , None , None ), pytest .raises (KeyError )),
173- ((None , None , "Coco_Voc" , "large" ), pytest .raises (KeyError )),
174- ((None , None , None , "Extra_Large" ), pytest .raises (KeyError )),
191+ (("adamW" , None , None , None , "Enable" , "Enable" ), pytest .raises (KeyError )),
192+ ((None , "Warmup_Cosine" , None , None , "Enable" , "Enable" ), pytest .raises (KeyError )),
193+ ((None , None , "Coco_Voc" , "large" , "Enable" , "Enable" ), pytest .raises (KeyError )),
194+ ((None , None , None , "Extra_Large" , "Enable" , "Enable" ), pytest .raises (KeyError )),
195+ ((None , None , None , None , "false" , "Enable" ), pytest .raises (KeyError )),
196+ ((None , None , None , None , "Enable" , "false" ), pytest .raises (KeyError )),
175197 ],
176198 ids = [
177199 "optimizer invalid" ,
178200 "learning rate scheduler invalid" ,
179201 "validation metric type invalid" ,
180202 "model size invalid" ,
203+ "log_training_metrics invalid" ,
204+ "log_validation_loss invalid" ,
181205 ],
182206 )
183207 def test_image_set_training_parameters_with_invalid_values (self , settings , expected ):
@@ -191,30 +215,46 @@ def test_image_set_training_parameters_with_invalid_values(self, settings, expec
191215 learning_rate_scheduler = settings [1 ],
192216 validation_metric_type = settings [2 ],
193217 model_size = settings [3 ],
218+ log_training_metrics = settings [4 ],
219+ log_validation_loss = settings [5 ],
194220 )
195221
196222 @pytest .mark .parametrize (
197223 "settings, expected" ,
198224 [
199225 (
200- ("adam" , "warmup_cosine" , "coco_voc" , "large" ),
226+ ("adam" , "warmup_cosine" , "coco_voc" , "large" , "enable" , "enable" ),
201227 (
202228 StochasticOptimizer .ADAM ,
203229 LearningRateScheduler .WARMUP_COSINE ,
204230 ValidationMetricType .COCO_VOC ,
205231 ModelSize .LARGE ,
232+ LogTrainingMetrics .ENABLE ,
233+ LogValidationLoss .ENABLE ,
206234 ),
207235 ),
208236 (
209- ("Adam" , "WarmupCosine" , "CocoVoc" , "Large" ),
237+ ("Adam" , "WarmupCosine" , "CocoVoc" , "Large" , "Enable" , "Enable" ),
210238 (
211239 StochasticOptimizer .ADAM ,
212240 LearningRateScheduler .WARMUP_COSINE ,
213241 ValidationMetricType .COCO_VOC ,
214242 ModelSize .LARGE ,
243+ LogTrainingMetrics .ENABLE ,
244+ LogValidationLoss .ENABLE ,
245+ ),
246+ ),
247+ (
248+ (None , None , "coco_voc" , "large" , "enable" , "enable" ),
249+ (
250+ None ,
251+ None ,
252+ ValidationMetricType .COCO_VOC ,
253+ ModelSize .LARGE ,
254+ LogTrainingMetrics .ENABLE ,
255+ LogValidationLoss .ENABLE ,
215256 ),
216257 ),
217- ((None , None , "coco_voc" , "large" ), (None , None , ValidationMetricType .COCO_VOC , ModelSize .LARGE )),
218258 ],
219259 ids = ["snake case" , "camel case" , "with None" ],
220260 )
@@ -224,13 +264,18 @@ def test_image_set_training_parameters_with_settings_object(self, settings, expe
224264 learning_rate_scheduler = settings [1 ],
225265 validation_metric_type = settings [2 ],
226266 model_size = settings [3 ],
267+ log_training_metrics = settings [4 ],
268+ log_validation_loss = settings [5 ],
227269 )
228270 image_instance_segmentation_job = image_instance_segmentation (
229271 training_data = Input (type = AssetTypes .MLTABLE , path = "https://foo/bar/train.csv" ),
230272 target_column_name = "label" ,
231273 training_parameters = image_model_settings ,
232274 )
275+
233276 assert image_instance_segmentation_job .training_parameters .optimizer == expected [0 ]
234277 assert image_instance_segmentation_job .training_parameters .learning_rate_scheduler == expected [1 ]
235278 assert image_instance_segmentation_job .training_parameters .validation_metric_type == expected [2 ]
236279 assert image_instance_segmentation_job .training_parameters .model_size == expected [3 ]
280+ assert image_instance_segmentation_job .training_parameters .log_training_metrics == expected [4 ]
281+ assert image_instance_segmentation_job .training_parameters .log_validation_loss == expected [5 ]
0 commit comments