File size: 7,082 Bytes
ac7cafe | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | {
"checkpoint": {
"path": "joint_root_area_poc_epoch200.pt",
"sha256": "1bed00bc8f934243f079592c84f06090d720798f63044ffcb462a11ddf0105f8",
"size_bytes": 382445498
},
"config": {
"area_lambda": 0.15,
"backbone": "facebook/dinov3-vitb16-pretrain-lvd1689m",
"batch_size": 2,
"classification_positive_weight": 10.0,
"classification_probability_threshold": 0.5,
"classification_sigma": 3.0,
"decoder_activation_checkpointing": true,
"density_alpha": 0.5,
"derived_polygon_labelme": "tile_1001_0_0_pseudo_area_labelme.json",
"epochs": 200,
"experiment": "joint-root-area-poc",
"freeze_backbone": true,
"gradient_accumulation_steps": 2,
"image_height": 3943,
"image_id": "day2/tiles_png_1001/tile_1001_0_0.png",
"image_width": 3797,
"inference_patch_size": 512,
"inference_stride": 512,
"learning_rate": 0.0001,
"logical_device": "cuda:0",
"match_tolerance_px": 15.0,
"patch_count": 64,
"patch_size": 512,
"peak_min_distance": 8,
"physical_gpu": 5,
"physical_microbatch_size": 1,
"polygon_array_count": 457,
"polygon_prediction_count": 401,
"polygon_source": "test_tile_1001_0_0.json",
"precision": "CUDA autocast float16; GradScaler; losses accumulated as float32 where PyTorch requires",
"preprocessing": "RGB; pixels with all channels >=250 filled black; ImageNet normalization",
"raw_image": "tile_1001_0_0_raw.png",
"root_count": 209,
"root_xml": "point_id18_annotations.xml",
"run_id": "0003-point18-joint-area-poc",
"schema": "wheat-exp.run-config",
"schema_version": "1.0.0",
"seed": 1001,
"split": "row-major edge-push coordinates; first 32 train, last 32 validation",
"stride": 512,
"train_patch_count": 32,
"unseen_image": "/mnt/hdb/chenyizi/sam3-fewshot/data/tile_1020_test/tile_1020_0_0.png",
"use_area": true,
"validation_patch_count": 32,
"weight_decay": 0.0001
},
"epoch_1": {
"epoch": 1,
"finite": true,
"train": {
"loss": 1.4028209700281877,
"loss_area": 0.9841924272077449,
"loss_cls": 0.080084727796077,
"loss_density": 0.016705973462740595,
"loss_reg": 1.166754387319088
},
"validation": {
"loss": 2.1073910218233323,
"loss_area": 1.0187577032193076,
"loss_cls": 0.0756952810331768,
"loss_density": 9.822749692952291e-09,
"loss_reg": 1.878882072865963
}
},
"epoch_200": {
"epoch": 200,
"finite": true,
"train": {
"loss": 0.07707233374471402,
"loss_area": 0.17010920215398073,
"loss_cls": 0.002606162868971751,
"loss_density": 1.155940458440587e-08,
"loss_reg": 0.04894978346419521
},
"validation": {
"loss": 2.308025994721122,
"loss_area": 0.4174362588724989,
"loss_cls": 0.06357826597036365,
"loss_density": 1.1210296078304881e-08,
"loss_reg": 2.1818322725594044
}
},
"experiment": "joint-root-area-poc",
"history_file": "training_history.json",
"limitations": [
"Single selected source tile with a deterministic spatial patch holdout; not independent-image generalization evidence.",
"SAM3 polygon arrays are pseudo segmentation used only by the auxiliary area branch.",
"No matched point-only baseline was run, so this run makes no area-supervision improvement claim.",
"Unseen output is qualitative because no manual roots are available for that image.",
"The required optimizer batch size 2 is executed as two size-1 physical microbatches with gradient accumulation because an unrelated co-tenant occupied about 14.7 GiB on physical GPU 5; decoder activation checkpointing and AMP preserve the requested GPU and effective batch without changing source model code."
],
"metrics": {
"area_auxiliary": {
"interpretation": "auxiliary diagnostic against SAM3 pseudo segmentation, not manual GT",
"intersection_pixels": 144289,
"iou_against_pseudo_area": 0.5008104515273627,
"threshold": 0.5,
"union_pixels": 288111
},
"evaluation_class": "architecture/behavior POC; not an area-supervision effect comparison",
"held_out_manual_root_count": 142,
"held_out_prediction_count": 99,
"held_out_spatial_region": {
"count_error": 43.0,
"f1": 0.5477178423236515,
"fn": 76,
"fp": 33,
"precision": 0.6666666666666666,
"recall": 0.4647887323943662,
"tp": 66
},
"same_tile_full_image": {
"count_error": 43.0,
"f1": 0.7093333333333333,
"fn": 76,
"fp": 33,
"precision": 0.8012048192771084,
"recall": 0.6363636363636364,
"tp": 133
}
},
"run_id": "0003-point18-joint-area-poc",
"schema": "wheat-exp.recipe",
"schema_version": "1.0.0",
"smoke_command": "cd /mnt/hdb/chenyizi/wheat-detect && source /mnt/hdb/chenyizi/sam3-fewshot/venv/bin/activate && PYTHONPATH=/mnt/hdb/chenyizi/wheat-detect HF_HOME=/mnt/hdb/chenyizi/sam3-fewshot/hf-cache TRANSFORMERS_OFFLINE=1 CUDA_VISIBLE_DEVICES=5 python experiments/joint-root-area-poc/runs/0003-point18-joint-area-poc/run_joint_poc.py --mode smoke",
"source_revision": {
"git_commit": null,
"git_commit_status": "unavailable: remote checkout has no commit object",
"repository": "/mnt/hdb/chenyizi/wheat-detect",
"source_file_sha256": {
"wheat_detect/data/dataset.py": "0401cc3a0a39ab02a3322aa5c68d689c2df4ab79718c7191493b7f70bae8efe2",
"wheat_detect/data/preprocessing.py": "fe57174183e5427517c5f3e68077cc226e6ebbf390b8522aedb2140b10c1ab6e",
"wheat_detect/evaluation/metrics.py": "0762d8e0aff3d0f170d366b93814ab032a4392ce55b4cf9e8f555c3f3ab45467",
"wheat_detect/evaluation/rendering.py": "c4d273e24332666bd1ac909141af4e18eb53ec4023d0fd41f7cb4694e0b6981f",
"wheat_detect/losses/counting_loss.py": "3e112a1a861bd47150bfd8b9236c649aeb434f79a303354774b196a76403f4f3",
"wheat_detect/models/counting_module.py": "8a33d7510d1f48ec4682dc7ae93ef47c072097a312174fa5bac6ccfdf0c98db6",
"wheat_detect/models/decoder.py": "19e61542dc4cba0616435a9b5054db631840ef819bc10fee2aeb982b8f5e378b"
},
"source_model_code_modified_by_run": false
},
"spec_version": "1.0.0",
"status": "complete",
"supervision": {
"area_target": "raster fills from 457 SAM3 pseudo polygon arrays",
"area_valid": true,
"classification_target": "manual root Gaussian heatmap",
"density_target": "manual root density diagnostic/supporting loss",
"polygon_geometry_used_for_point_targets_or_metrics": false,
"primary_root_target": "209 manual CVAT wheat points",
"regression_target": "manual root offset map"
},
"training_command": "cd /mnt/hdb/chenyizi/wheat-detect && source /mnt/hdb/chenyizi/sam3-fewshot/venv/bin/activate && PYTHONPATH=/mnt/hdb/chenyizi/wheat-detect HF_HOME=/mnt/hdb/chenyizi/sam3-fewshot/hf-cache TRANSFORMERS_OFFLINE=1 CUDA_VISIBLE_DEVICES=5 python experiments/joint-root-area-poc/runs/0003-point18-joint-area-poc/run_joint_poc.py --mode train",
"unseen_status": "complete_qualitative_only"
}
|