Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1930 commits
Select commit Hold shift + click to select a range
ff7f2da
Add current training job UI (#5248)
jpggvilaca Jan 20, 2026
822fcdd
Update demo models (#5249)
leoll2 Jan 20, 2026
aacce3a
Extend model endpoint with scores (#5254)
itallix Jan 21, 2026
81f6b44
Add top picks to Model Architectures endpoint (#5255)
A-Artemis Jan 21, 2026
36ed337
Add query param for dataset revision to filter models on dataset (#5185)
JortBergfeld Jan 21, 2026
8173d44
Update run.sh to be compatible with bash 3.x (#5257)
AlbertvanHouten Jan 21, 2026
7b7f428
Inference device selector (#5252)
camiloHimura Jan 21, 2026
6a98280
Integrate model variants API (#5251)
jpggvilaca Jan 21, 2026
ba7ee13
Add model size calculation (#5259)
A-Artemis Jan 21, 2026
79055bc
Generate dataset item thumbnail on request (#5261)
A-Artemis Jan 21, 2026
6ee1b61
fix: Project related issues (#5264)
dwesolow Jan 21, 2026
cc84d29
Component tests for models screen (#5262)
jpggvilaca Jan 21, 2026
1c0ad34
refactor(project): New project flow (#5260)
dwesolow Jan 21, 2026
f001295
chore(deps): update dependency lodash-es to v4.17.23 [security] (deve…
oep-renovate[bot] Jan 22, 2026
e89f60f
Annotator label assignment (#5275)
camiloHimura Jan 22, 2026
542a45c
Video upload design (#5224)
warrkan Jan 22, 2026
f34a7b9
Progress reporting in the training job (#5292)
itallix Jan 22, 2026
9bbdc3f
Upgrade PyTorch to 2.10 (#5286)
leoll2 Jan 22, 2026
98ebed4
Upgrade OpenVINO and Model API (#5295)
leoll2 Jan 23, 2026
26d905d
feat: Display recommended architectures and simplify code (#5291)
dwesolow Jan 23, 2026
281dc30
API integration pt3 (#5290)
jpggvilaca Jan 23, 2026
44444c7
Annotator remove labels (#5296)
camiloHimura Jan 23, 2026
3d64e9b
Media table, separation of media and dataset items (#5294)
warrkan Jan 23, 2026
ef86e8e
Bug fixing after triage (#5299)
jpggvilaca Jan 23, 2026
2d87a7a
Extend model list endpoint to return evaluations (#5302)
itallix Jan 23, 2026
0f3f738
Add ZAP and Schemathesis scan (#5303)
ivanzati Jan 23, 2026
79a0996
Create skeleton for dataset I/E staging area endpoints (#5305)
itallix Jan 26, 2026
437e01c
Update api training datasets (#5304)
jpggvilaca Jan 26, 2026
006b3e7
fix: Project navigation and color watches width (#5308)
dwesolow Jan 26, 2026
0e0be13
Cleanup n1 (#5309)
jpggvilaca Jan 26, 2026
92b8f92
Enable support for Python 3.14 in OTX (#5300)
leoll2 Jan 26, 2026
d90c18f
feat: Add annotate button to open preview (#5310)
dwesolow Jan 26, 2026
2f422a3
Feedback from Radwan & Leonardo (#5317)
jpggvilaca Jan 26, 2026
a7981f4
Fix error 500 when loading dataset revision items (#5318)
leoll2 Jan 27, 2026
072abef
Annotator toolbar updates (#5321)
jpggvilaca Jan 27, 2026
d7c233e
Upgrade uv to 0.9.27 (#5322)
leoll2 Jan 27, 2026
9cd36f5
feat: Annotation vs Prediction (#5325)
dwesolow Jan 27, 2026
5f7e38a
Specify 'dynamic_shapes' for conversion of detection models to ONNX v…
leoll2 Jan 27, 2026
5675db6
Sidebar & toolbar improvements (#5328)
jpggvilaca Jan 27, 2026
ac9ff88
fix: Fixes and improvements across the app (#5331)
dwesolow Jan 27, 2026
b95319e
Correct path for docker mounted data and logs (#5333)
A-Artemis Jan 27, 2026
eca6fa7
Set multiprocessing method in OTXDataModule (#5332)
AlbertvanHouten Jan 27, 2026
4b4c0eb
Cleanup unnecessary OTX entities (#5250)
AlbertvanHouten Jan 28, 2026
f773afe
Update model revision training status (#5326)
itallix Jan 28, 2026
52b042b
Unit test updates (#5335)
jpggvilaca Jan 28, 2026
6373527
Create skeleton for dataset import endpoints (#5323)
itallix Jan 28, 2026
cd44e74
Classification project (#5329)
camiloHimura Jan 28, 2026
ca037c7
Subset splits (#5343)
jpggvilaca Jan 28, 2026
e246aea
refactor: Persist annotations between annotation vs prediction (#5341)
dwesolow Jan 28, 2026
896f011
chore: Reduce annotator container padding, added other hover effect f…
dwesolow Jan 28, 2026
2fdad0c
Add endpoints for listing and getting dataset revisions (#5307)
JortBergfeld Jan 28, 2026
e1cadce
Create skeleton for dataset export endpoints (#5339)
itallix Jan 28, 2026
dba11ea
Unit tests & cleanup (#5346)
jpggvilaca Jan 29, 2026
a9ff3d8
fix: Annotator fixes and improvements (#5349)
dwesolow Jan 29, 2026
3a5551c
feat: implement labels selector component with badges (#5312)
ActiveChooN Jan 29, 2026
622fe25
Fix server errors in dataset revision endpoints (#5351)
leoll2 Jan 29, 2026
88a8d16
tests - Classification project (#5342)
camiloHimura Jan 29, 2026
f930198
Add endpoint to rename dataset revision (#5337)
JortBergfeld Jan 30, 2026
17fd05b
Empty scenarios models (#5363)
jpggvilaca Jan 30, 2026
ed5914e
test: Annotation vs prediction (#5366)
dwesolow Jan 30, 2026
00e821f
fix: eslint header rule (#5368)
ActiveChooN Jan 30, 2026
4daca6f
Integrate dataset revisions (#5367)
jpggvilaca Jan 30, 2026
71a0521
feat: auto-select new shape and improve outline styles of labels (#5362)
ActiveChooN Jan 30, 2026
ddc5389
Add unit tests for dumb components part 1 (#5360)
jpggvilaca Jan 30, 2026
0402b31
Add dataset revision ID support for job creation (#5345)
A-Artemis Jan 30, 2026
f4e3b2f
chore: Train model improvements (#5371)
dwesolow Jan 30, 2026
8d0b28f
Upgrade GPU drivers (#5380)
leoll2 Feb 2, 2026
abab226
chore: Use Badge from @geti/ui (#5378)
dwesolow Feb 2, 2026
9bdf5c1
chore: Disable canvas and primary toolbar in prediction mode (#5377)
dwesolow Feb 2, 2026
a2a17fd
Delete & rename dataset revision (#5372)
jpggvilaca Feb 2, 2026
5f4d229
chore: Use type-safe invalidateQueries (#5379)
dwesolow Feb 2, 2026
4397f89
fix error 404 when listing dataset revisions after deletion (#5376)
leoll2 Feb 2, 2026
644f040
merge develop
kprokofi Feb 2, 2026
1167bfd
Fix user_reviewed status for newly uploaded media (#5383)
leoll2 Feb 2, 2026
7afcda1
classification works
kprokofi Feb 2, 2026
e81fd3c
add callback
kprokofi Feb 2, 2026
132989e
Handle dataset revision deletion (#5384)
jpggvilaca Feb 3, 2026
ed1e0de
fix default PUBLIC_API_BASE_URL (#5390)
leoll2 Feb 3, 2026
1c29211
feat: Delete annotation using backspace (#5399)
dwesolow Feb 3, 2026
8deb8b6
feat: Context menu (#5389)
camiloHimura Feb 3, 2026
cecee6e
chore: AnnotationShapeWithLabels improvements (#5375)
ActiveChooN Feb 3, 2026
91ff0f4
chore: update stale annotations (#5401)
camiloHimura Feb 3, 2026
e73f14a
Update model manifest ids and names to be consistent (#5327)
leoll2 Feb 3, 2026
551b826
instance seg maskrcnn works, accuracy 0
kprokofi Feb 3, 2026
f2effa1
Merge branch 'develop' into kp/kornia
kprokofi Feb 3, 2026
03a9723
feat: Rename webcam to USB camera (#5404)
camiloHimura Feb 4, 2026
37f8605
Minor model screen improvements (#5413)
jpggvilaca Feb 4, 2026
be308f0
feat: Add 'Use current revision' for the modal training (#5414)
dwesolow Feb 4, 2026
bdc7941
feat: Handle empty label (#5400)
dwesolow Feb 4, 2026
9f66ea3
feat: Disable training model button (#5420)
dwesolow Feb 4, 2026
5a19587
fix: Show proper toast message on successful training start depending…
dwesolow Feb 4, 2026
304abf2
fix: Use rectangle shape for SAM in detection task (#5422)
dwesolow Feb 4, 2026
cf891ea
Fix annotation validation to properly handle the empty label case (#5…
leoll2 Feb 4, 2026
8f21d87
fix masks handling
kprokofi Feb 4, 2026
abb0d87
feat: Annotator default tool (#5419)
camiloHimura Feb 5, 2026
693c1bf
ci: Re-implement trigger logic (#5417)
mramotowski Feb 5, 2026
a703269
Bottom toolbar api integration (#5431)
jpggvilaca Feb 5, 2026
a287e86
kepp aspect ratio
kprokofi Feb 5, 2026
f6f72bc
Improve 'evaluations' response (#5433)
leoll2 Feb 5, 2026
d2556d6
feat: Persist the media item ID in the URL (#5442)
camiloHimura Feb 5, 2026
9dcc33d
Read-only or "simplified" annotator (#5424)
jpggvilaca Feb 6, 2026
60a5ce6
chore: Improve models screen [PART 1] (#5441)
dwesolow Feb 6, 2026
c846edb
chore: Improve models screen [PART 2] (#5445)
dwesolow Feb 6, 2026
303fd81
chore: Improve models screen [PART 3] (#5449)
dwesolow Feb 6, 2026
69b503f
feat: Popover for label management (#5418)
ActiveChooN Feb 6, 2026
53425d9
feat: Toggle visibility of failed models (#5450)
dwesolow Feb 9, 2026
49811ab
feat: Rename project (#5451)
camiloHimura Feb 9, 2026
7ca1dd8
Labels management pins (#5444)
ActiveChooN Feb 9, 2026
07b3d93
Subset gallery view (#5453)
jpggvilaca Feb 9, 2026
ab02c4e
Enable Pyrefly in OTX (#5253)
leoll2 Feb 9, 2026
b61790f
feat: Display performance metrics (#5462)
dwesolow Feb 9, 2026
f5de537
Implement endpoint to retrieve model logs (#5469)
itallix Feb 9, 2026
f67d08e
chore: Remove not supported subset actions (#5472)
dwesolow Feb 9, 2026
f9c5b9e
Fix image-classification-efficientnet-b0 pretrained weights download …
A-Artemis Feb 9, 2026
33a7116
Store id explicitly in dataset revision items (#5471)
leoll2 Feb 9, 2026
c76727e
chore: Improve styles for active project, add multi label badge (#5470)
dwesolow Feb 9, 2026
796ffac
Implement endpoints to manage staged datasets (#5370)
itallix Feb 10, 2026
050dfb6
A few more component tests for model-details (#5475)
jpggvilaca Feb 10, 2026
c728780
Add some user information (#5477)
jpggvilaca Feb 10, 2026
0f4e8d3
Validate dataset revision counts before saving to disk (#5455)
JortBergfeld Feb 10, 2026
1e18cd1
Integrate project thumbnail API on project list (#5479)
jpggvilaca Feb 10, 2026
d4a4974
feat: Delete confirmation dialog (#5467)
camiloHimura Feb 10, 2026
0674673
feat: Dataset gallery grid options (#5482)
camiloHimura Feb 10, 2026
1e30e7c
Fix division by zero for rate limit bug (#5448)
JortBergfeld Feb 10, 2026
e424628
Subset splitter should guarantee at least 1 item in each subset (#5481)
itallix Feb 10, 2026
9b60c28
Video upload (#5385)
warrkan Feb 11, 2026
9419961
Update Pyrefly config to only check source and test folders (#5497)
leoll2 Feb 11, 2026
080b285
Disable model activation is model is training (#5493)
jpggvilaca Feb 11, 2026
509c5f0
feat: Support media download and deletion (#5501)
dwesolow Feb 11, 2026
76ca70d
Replace intelOne with ROBOTO FLEX (#5480)
jpggvilaca Feb 11, 2026
010da20
Cannot retrieve the uploaded video (#5499)
warrkan Feb 11, 2026
27cc6be
Training job cancellation does not work (#5504)
itallix Feb 11, 2026
57a6618
ci: consolidate and improve GHA workflows (#5446)
mramotowski Feb 12, 2026
bdc348e
Add 'video_frames` table (#5502)
warrkan Feb 12, 2026
c00eefd
feat: Add video indicator (#5510)
dwesolow Feb 12, 2026
c946855
Add support for configurable inference device for the model (#5478)
A-Artemis Feb 12, 2026
2e70ab7
added 16 bit implementation
kprokofi Feb 12, 2026
af04e18
Merge branch 'develop' into kp/kornia
kprokofi Feb 12, 2026
171ee9e
ci: Add missing check to integration-tests job (#5515)
mramotowski Feb 12, 2026
a8fbbe0
Add semantics for samples (#5520)
AlbertvanHouten Feb 12, 2026
3386c81
Preserve tool choice (#5489)
jpggvilaca Feb 12, 2026
4e40cb6
Update main header styles & included pipeline status (#5517)
jpggvilaca Feb 12, 2026
4aad4c5
feat: Export Dialog - P1 (#5507)
camiloHimura Feb 12, 2026
ef8ac47
chore(deps): update dependency pillow to v12.1.1 [security] (develop)…
oep-renovate[bot] Feb 12, 2026
3808a7b
chore(deps): update pin images (develop) (#5229)
oep-renovate[bot] Feb 12, 2026
7151f68
chore(deps): update dependency python-multipart to v0.0.22 [security]…
oep-renovate[bot] Feb 13, 2026
fb7f216
Recover from failed stream (#5505)
jpggvilaca Feb 13, 2026
d628ed5
WebRTC broadcast frames to all connected streams (#5454)
JortBergfeld Feb 13, 2026
a26f19d
Project actions (#5524)
jpggvilaca Feb 13, 2026
4083d66
feat: job status updates via SSE (#5483)
ActiveChooN Feb 13, 2026
d502920
fix: Debouncing of the label color picker (#5506)
ActiveChooN Feb 13, 2026
8d4f630
feat: Video playback (#5525)
dwesolow Feb 13, 2026
38fbe7d
Validate no other project's pipelines are running before starting pip…
JortBergfeld Feb 13, 2026
51694a2
feat: Add `Annotate` to the media item actions (#5527)
dwesolow Feb 13, 2026
be28475
Add mixin for text truncation and fix all project name occurrences (#…
jpggvilaca Feb 13, 2026
fedf748
feat: Export Dialog - P2 (#5523)
camiloHimura Feb 13, 2026
5e6d0f0
minor clean up
kprokofi Feb 13, 2026
9d51c4b
Monitor stale jobs (#5526)
itallix Feb 16, 2026
5e24bca
Fix model revision name to use arch name and not id (#5537)
JortBergfeld Feb 16, 2026
0fc2787
Revamp project seeding (#5513)
leoll2 Feb 16, 2026
b714d9f
Add user_reviewed to DatasetItem response (#5538)
A-Artemis Feb 16, 2026
d5b2c40
remove poc kornia
kprokofi Feb 16, 2026
b6135c0
Merge branch 'develop' into kp/kornia
kprokofi Feb 16, 2026
00eac6a
Implement job to export dataset (#5443)
itallix Feb 17, 2026
36fe818
dependencies
kprokofi Feb 17, 2026
e7a5106
Fix RGBA images thumbnail generation (#5546)
warrkan Feb 17, 2026
364c2d8
return back
kprokofi Feb 17, 2026
5e8b2dd
feat: Export Dialog - P3 (#5534)
camiloHimura Feb 17, 2026
be29210
Added media duration field (#5518)
warrkan Feb 17, 2026
3ca99ec
Delete project files when project is deleted (#5551)
JortBergfeld Feb 17, 2026
784e825
Catch ResourceNotFoundErrors in FastAPI handler (#5544)
JortBergfeld Feb 17, 2026
eab5923
Update datumaro version (#5540)
AlbertvanHouten Feb 17, 2026
4ef3a20
Model training metrics endpoint (#5330)
A-Artemis Feb 17, 2026
3d5f4e2
Add size in bytes to dataset revision (#5539)
JortBergfeld Feb 18, 2026
c14580d
feat: Add video controls (#5541)
dwesolow Feb 18, 2026
192d27b
minor fix of bboxes in kornia
kprokofi Feb 18, 2026
b016617
fix: SAM tool, dataset revision created at, models page (#5548)
dwesolow Feb 19, 2026
41fb4db
Annotating a video frame (#5545)
warrkan Feb 19, 2026
70c6338
feat: Export Dialog - P4 (#5559)
camiloHimura Feb 19, 2026
db68eea
fix list override
kprokofi Feb 19, 2026
32325ef
merge develop
kprokofi Feb 19, 2026
2e96c5b
Logging utilities and hooks for model logs (#5533)
ActiveChooN Feb 19, 2026
3ad4299
feat: Video timeline + video frames (only UI representation) [PART 1]…
dwesolow Feb 19, 2026
7852cf8
Address frames using indexes instead of timestamps (#5567)
warrkan Feb 19, 2026
b7d0f65
Fix annotations with empty label should not be in training dataset (#…
JortBergfeld Feb 19, 2026
85b8360
partially resolve linter
kprokofi Feb 19, 2026
826effc
Add RFDetr model for Object Detection and Instance Segmentation (#5081)
kprokofi Feb 19, 2026
00172a3
merge develop
kprokofi Feb 19, 2026
84035f7
Update uv and uv.lock (#5576)
leoll2 Feb 20, 2026
58562bd
fix: Update unannotated media error handling (#5582)
dwesolow Feb 20, 2026
a3becfd
feat: Add video frame thumbnail (mocked) [PART 2] (#5568)
dwesolow Feb 20, 2026
d81fb30
feat: import to existing project - P1 (#5570)
camiloHimura Feb 20, 2026
b561181
Fix paths that trigger the execution of backend and build GHA workflo…
leoll2 Feb 20, 2026
8777445
Delete dataset revision files if no model is linked (#5549)
JortBergfeld Feb 22, 2026
d64fcca
Fix training on XPU after PT Lightning update (#5587)
leoll2 Feb 23, 2026
bd34d44
Update Python version in precommit (#5596)
A-Artemis Feb 23, 2026
5a17156
Use latest up to date dataset revision if it exists for training (#5571)
JortBergfeld Feb 23, 2026
62f27b9
feat: Export Dialog - P5 (#5569)
camiloHimura Feb 23, 2026
29eb94d
Split Media entity into subentities (#5575)
warrkan Feb 23, 2026
cdc62e7
Merge transform_libs/ into augmentation/, delete legacy numpy pipelin…
Copilot Feb 23, 2026
133bc64
Merge branch 'develop' into kp/kornia
kprokofi Feb 23, 2026
3a4671b
some ruff fixes
kprokofi Feb 23, 2026
1485933
fix mean and std ranges
kprokofi Feb 23, 2026
9ec47a4
Fix linter and unit test issues
kprokofi Feb 23, 2026
636f69d
removed snapshot
kprokofi Feb 23, 2026
bab46fd
applied fixes
kprokofi Feb 25, 2026
1280216
updated OTXDataModule
kprokofi Feb 25, 2026
c447715
minor change
kprokofi Feb 25, 2026
da9b8dc
merge develop
kprokofi Feb 25, 2026
4d23555
debug asserts
kprokofi Feb 25, 2026
eab93a2
fix for YOLOX model
kprokofi Feb 25, 2026
d089384
delete debug lines
kprokofi Feb 25, 2026
0f7a4e7
fixes to pipeline
kprokofi Feb 27, 2026
d3cd504
Merge branch 'develop' into kp/kornia
kprokofi Mar 11, 2026
058ed6d
Merge branch 'kp/kornia' of https://github.com/open-edge-platform/tra…
kprokofi Mar 11, 2026
45fcac0
fix linter and return ui back
kprokofi Mar 11, 2026
0a00207
return ui
kprokofi Mar 11, 2026
a42bbfc
revert app back
kprokofi Mar 12, 2026
b185d50
Merge branch 'develop' into kp/kornia
kprokofi Mar 12, 2026
7b07f25
remove tv_tensors flag
kprokofi Mar 12, 2026
d9a6e00
minor fix
kprokofi Mar 12, 2026
58ef3a2
added converter, new integration test, new dataset, fixed linter
kprokofi Mar 16, 2026
878d34c
fix linter, merge develop
kprokofi Mar 16, 2026
f7af6bd
removed old dataset
kprokofi Mar 16, 2026
1eafe67
uv lock:
kprokofi Mar 16, 2026
48c2fbf
fix unit tests
kprokofi Mar 16, 2026
4ca5a28
Add missing tests/test_helpers.py
kprokofi Mar 16, 2026
d8e75bd
delete old test
kprokofi Mar 16, 2026
47c3007
fix chw format
kprokofi Mar 16, 2026
05e9db1
change paths
kprokofi Mar 16, 2026
02f7c1b
fix: resolve CI failures (dfine_x shapes, tile recipe, 16bit dataset)
kprokofi Mar 16, 2026
ab29138
fix: restore img_info in transforms + clean up pickle support
kprokofi Mar 16, 2026
a5d9383
Remove dead sample_type state from OTXDataset, simplify pickle support
kprokofi Mar 16, 2026
659487d
Fix keypoint detection: pad+stack keypoints for Kornia AugmentationSe…
kprokofi Mar 16, 2026
8c22d29
Fix keypoint stacking (no padding needed) and h_label_cls parquet shapes
kprokofi Mar 16, 2026
309f5f1
fix: _read_dm_item refactor, seg recipes, dino_v2 yaml, ruff, pyrefly…
kprokofi Mar 16, 2026
4699cce
fix: move 16bit test to test_engine, delete test_engine_api.py, fix ruff
kprokofi Mar 17, 2026
86a4804
retunr move model back
kprokofi Mar 17, 2026
f384a54
NCHW format for tiling:
kprokofi Mar 17, 2026
995936d
Merge branch 'develop' into kp/kornia
kprokofi Mar 17, 2026
9e6eccf
fix last issues
kprokofi Mar 17, 2026
ee50355
move common method to function
kprokofi Mar 17, 2026
126dba6
move kornia patch to function
kprokofi Mar 17, 2026
0555827
upgrade datumaro
kprokofi Mar 17, 2026
b2854db
fix server: TransformLibFactory + pyrefly missing-attribute ignores
kprokofi Mar 17, 2026
b254e93
quick fix for long lines
kprokofi Mar 18, 2026
39bf5a5
reply to comments, bump all headers
kprokofi Mar 19, 2026
04bf6cb
Merge branch 'develop' into kp/kornia
kprokofi Mar 19, 2026
d01cc0a
fix issues with aug_switch
kprokofi Mar 19, 2026
d3c9ffa
Merge branch 'kp/kornia' of https://github.com/open-edge-platform/tra…
kprokofi Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions application/backend/app/execution/training/otx_trainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
OTXMultilabelClsDataset,
)
from otx.data.dataset.base import OTXDataset
from otx.data.factory import TransformLibFactory
from otx.data.module import OTXDataModule
from otx.data.transform_libs.torchvision import TorchVisionTransformLib
from otx.metrics import MetricCallable
from otx.metrics.accuracy import MultiClassClsMetricCallable, MultiLabelClsMetricCallable
from otx.metrics.mean_ap import MaskRLEMeanAPCallable, MeanAPCallable
Expand Down Expand Up @@ -229,9 +229,8 @@ def build_subset_config(subset_name: str) -> SubsetConfig:
subset_cfg_data["input_size"] = training_config["data"]["input_size"]
sampler_cfg_data = subset_cfg_data.pop("sampler", {})
subset_config = SubsetConfig(sampler=SamplerConfig(**sampler_cfg_data), **subset_cfg_data)
subset_config.transforms = TorchVisionTransformLib.generate( # pyrefly: ignore[bad-assignment]
subset_config
)
# pyrefly: ignore[missing-attribute,bad-assignment]
subset_config.transforms = TransformLibFactory.generate(subset_config)
return subset_config

with self._db_session_factory() as db:
Expand Down Expand Up @@ -291,15 +290,15 @@ def build_subset_config(subset_name: str) -> SubsetConfig:
logger.info("Preparing {} instances for each subset", otx_dataset_class.__name__)
otx_training_dataset = otx_dataset_class(
dm_subset=dm_training_dataset,
transforms=train_subset_config.transforms, # pyrefly: ignore[bad-argument-type]
transforms=train_subset_config.transforms, # pyrefly: ignore[missing-attribute,bad-argument-type]
)
otx_validation_dataset = otx_dataset_class(
dm_subset=dm_validation_dataset,
transforms=val_subset_config.transforms, # pyrefly: ignore[bad-argument-type]
transforms=val_subset_config.transforms, # pyrefly: ignore[missing-attribute,bad-argument-type]
)
otx_testing_dataset = otx_dataset_class(
dm_subset=dm_testing_dataset,
transforms=test_subset_config.transforms, # pyrefly: ignore[bad-argument-type]
transforms=test_subset_config.transforms, # pyrefly: ignore[missing-attribute,bad-argument-type]
)

return DatasetInfo(
Expand Down Expand Up @@ -368,8 +367,8 @@ def train_model(
model_cfg["init_args"]["label_info"] = otx_datamodule.label_info.label_names
model_cfg["init_args"]["data_input_params"] = DataInputParams(
input_size=cast(tuple[int, int], otx_datamodule.input_size),
mean=otx_datamodule.input_mean,
std=otx_datamodule.input_std,
mean=otx_datamodule.input_mean if otx_datamodule.input_mean is not None else (0.0, 0.0, 0.0),
std=otx_datamodule.input_std if otx_datamodule.input_std is not None else (1.0, 1.0, 1.0),
).as_dict()
model_parser = ArgumentParser()
model_parser.add_subclass_arguments(OTXModel, "model", required=False, fail_untyped=False)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,31 +402,31 @@ def test_prepare_training_dataset_success(
"batch_size": 8,
"num_workers": 4,
"sampler": {"class_path": "torch.utils.data.RandomSampler"},
"transforms": [
"augmentations_cpu": [
{"class_path": "torchvision.transforms.v2.RandomHorizontalFlip", "init_args": {"p": 0.5}}
],
},
"val_subset": {
"batch_size": 4,
"num_workers": 2,
"sampler": {"class_path": "torch.utils.data.RandomSampler"},
"transforms": [],
"augmentations_cpu": [],
},
"test_subset": {
"batch_size": 2,
"num_workers": 1,
"sampler": {"class_path": "torch.utils.data.RandomSampler"},
"transforms": [],
"augmentations_cpu": [],
},
}
}

# Mock TorchVisionTransformLib.generate to return mock transforms
# Mock TransformLibFactory.generate to return mock transforms
mock_train_transforms = [Mock()]
mock_val_transforms = [Mock()]
mock_test_transforms = [Mock()]

with patch("app.execution.training.otx_trainer.TorchVisionTransformLib.generate") as mock_generate:
with patch("app.execution.training.otx_trainer.TransformLibFactory.generate") as mock_generate:
mock_generate.side_effect = [mock_train_transforms, mock_val_transforms, mock_test_transforms]

# Mock the __get_otx_dataset_class_by_task_type method to return a proper mock class
Expand Down Expand Up @@ -520,14 +520,17 @@ def test_prepare_training_dataset_success(
# Verify SubsetConfig objects were created correctly
assert dataset_info.otx_training_subset_config.batch_size == 8
assert dataset_info.otx_training_subset_config.num_workers == 4
# pyrefly: ignore[missing-attribute]
assert dataset_info.otx_training_subset_config.transforms == mock_train_transforms

assert dataset_info.otx_validation_subset_config.batch_size == 4
assert dataset_info.otx_validation_subset_config.num_workers == 2
# pyrefly: ignore[missing-attribute]
assert dataset_info.otx_validation_subset_config.transforms == mock_val_transforms

assert dataset_info.otx_testing_subset_config.batch_size == 2
assert dataset_info.otx_testing_subset_config.num_workers == 1
# pyrefly: ignore[missing-attribute]
assert dataset_info.otx_testing_subset_config.transforms == mock_test_transforms


Expand Down
Loading
Loading