Skip to content

Commit 239f34f

Browse files
authored
Fix simplification package related issues in image segmentation tasks (Azure#27254)
* uncomment the failing tests * Fixed the failed schema * removed the comments * Use the pre-generated jsonls for IS * Adding the jsonl conversions cript
1 parent 9b08ce0 commit 239f34f

File tree

7 files changed

+160
-14
lines changed

7 files changed

+160
-14
lines changed

sdk/ml/azure-ai-ml/dev_requirements.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,4 @@ pydash
1414
azure-mgmt-msi
1515
pywin32==304 ; sys_platform == 'win32'
1616
numpy;platform.python_implementation!="PyPy"
17-
scikit-image;platform.python_implementation!="PyPy"
18-
# comment this line as simplification is not supported in Python 3.11
19-
# simplification;platform.python_implementation!="PyPy"
17+
scikit-image;platform.python_implementation!="PyPy"

sdk/ml/azure-ai-ml/tests/automl_job/e2etests/test_automl_image_classification.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def test_image_classification_multiclass_run(
135135
submitted_job_automode = client.jobs.create_or_update(image_classification_job_automode)
136136

137137
# Assert completion of regular sweep job
138-
assert_final_job_status(submitted_job_sweep, client, ImageClassificationJob, JobStatus.COMPLETED)
138+
assert_final_job_status(submitted_job_sweep, client, ImageClassificationJob, JobStatus.COMPLETED, deadline=3600)
139139

140140
# Assert completion of Automode job
141-
assert_final_job_status(submitted_job_automode, client, ImageClassificationJob, JobStatus.COMPLETED)
141+
assert_final_job_status(submitted_job_automode, client, ImageClassificationJob, JobStatus.COMPLETED, deadline=3600)

sdk/ml/azure-ai-ml/tests/automl_job/e2etests/test_automl_image_classification_multilabel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def test_image_classification_multilabel_run(
145145
submitted_job_automode = client.jobs.create_or_update(image_classification_multilabel_job_automode)
146146

147147
# Assert completion of regular sweep job
148-
assert_final_job_status(submitted_job_sweep, client, ImageClassificationMultilabelJob, JobStatus.COMPLETED)
148+
assert_final_job_status(submitted_job_sweep, client, ImageClassificationMultilabelJob, JobStatus.COMPLETED, deadline=3600)
149149

150150
# Assert completion of Automode job
151-
assert_final_job_status(submitted_job_automode, client, ImageClassificationMultilabelJob, JobStatus.COMPLETED)
151+
assert_final_job_status(submitted_job_automode, client, ImageClassificationMultilabelJob, JobStatus.COMPLETED, deadline=3600)

sdk/ml/azure-ai-ml/tests/automl_job/e2etests/test_automl_image_object_detection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def test_image_object_detection_run(
169169
submitted_job_automode = client.jobs.create_or_update(image_object_detection_job_automode)
170170

171171
# Assert completion of regular sweep job
172-
assert_final_job_status(submitted_job_sweep, client, ImageObjectDetectionJob, JobStatus.COMPLETED)
172+
assert_final_job_status(submitted_job_sweep, client, ImageObjectDetectionJob, JobStatus.COMPLETED, deadline=3600)
173173

174174
# Assert completion of Automode job
175-
assert_final_job_status(submitted_job_automode, client, ImageObjectDetectionJob, JobStatus.COMPLETED)
175+
assert_final_job_status(submitted_job_automode, client, ImageObjectDetectionJob, JobStatus.COMPLETED, deadline=3600)

sdk/ml/azure-ai-ml/tests/automl_job/e2etests/test_automl_image_segmentation.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,32 @@ def _create_jsonl_segmentation(self, client, train_path, val_path):
3636
)
3737
data_path_uri = client.data.create_or_update(fridge_data)
3838

39-
data_path = "./odFridgeObjectsMask/"
39+
import os
40+
train_annotations_file = os.path.join(train_path, "train_annotations.jsonl")
41+
validation_annotations_file = os.path.join(val_path, "validation_annotations.jsonl")
4042

41-
from automl_job.jsonl_converter import convert_mask_in_VOC_to_jsonl
43+
self._update_jsonl_path(data_path_uri.path, train_annotations_file)
44+
self._update_jsonl_path(data_path_uri.path, validation_annotations_file)
4245

43-
convert_mask_in_VOC_to_jsonl(data_path, data_path_uri.path, train_path, val_path)
46+
def _update_jsonl_path(self, remote_path, file_path):
47+
import json
4448

49+
jsonl_file = open(file_path, "r")
50+
lines = jsonl_file.readlines()
51+
jsonl_file.close()
52+
53+
data_path = "odFridgeObjectsMask/"
54+
55+
with open(file_path, "w") as jsonl_file_write:
56+
for i in lines:
57+
json_line = eval(i)
58+
old_url = json_line["image_url"]
59+
result = old_url.find(data_path)
60+
61+
# Update image url
62+
json_line["image_url"] = remote_path + old_url[result + len(data_path) :]
63+
jsonl_file_write.write(json.dumps(json_line) + "\n")
64+
4565
def test_image_segmentation_run(self, image_segmentation_dataset: Tuple[Input, Input], client: MLClient) -> None:
4666
# Note: this test launches two jobs in order to avoid calling the dataset fixture more than once. Ideally, it
4767
# would have sufficed to mark the fixture with session scope, but pytest-xdist breaks this functionality:
@@ -99,7 +119,7 @@ def test_image_segmentation_run(self, image_segmentation_dataset: Tuple[Input, I
99119
submitted_job_automode = client.jobs.create_or_update(image_instance_segmentation_job_automode)
100120

101121
# Assert completion of regular sweep job
102-
assert_final_job_status(submitted_job_sweep, client, ImageInstanceSegmentationJob, JobStatus.COMPLETED)
122+
assert_final_job_status(submitted_job_sweep, client, ImageInstanceSegmentationJob, JobStatus.COMPLETED, deadline=3600)
103123

104124
# Assert completion of Automode job
105-
assert_final_job_status(submitted_job_automode, client, ImageInstanceSegmentationJob, JobStatus.COMPLETED)
125+
assert_final_job_status(submitted_job_automode, client, ImageInstanceSegmentationJob, JobStatus.COMPLETED, deadline=3600)

0 commit comments

Comments
 (0)