{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install -q /kaggle/input/mmdet3-wheels/addict-2.4.0-py3-none-any.whl\n!pip install -q /kaggle/input/mmdet3-wheels/mmengine-0.7.3-py3-none-any.whl\n!pip install -q /kaggle/input/mmdet3-wheels/mmcv-2.0.0-cp310-cp310-linux_x86_64.whl\n!pip install -q /kaggle/input/pycocotools/wheelhouse/pycocotools-2.0.6-cp310-cp310-linux_x86_64.whl\n!pip install -q /kaggle/input/mmdet3-wheels/terminaltables-3.1.10-py2.py3-none-any.whl\n!pip install -q /kaggle/input/mmdet3-wheels/mmdet-3.0.0-py3-none-any.whl","metadata":{"execution":{"iopub.status.busy":"2023-06-12T00:38:42.643010Z","iopub.execute_input":"2023-06-12T00:38:42.643302Z","iopub.status.idle":"2023-06-12T00:39:55.619088Z","shell.execute_reply.started":"2023-06-12T00:38:42.643275Z","shell.execute_reply":"2023-06-12T00:39:55.617848Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%writefile configs.py\n\n# The new config inherits a base config to highlight the necessary modification\n_base_ = '/kaggle/input/mmdet-v3/configs/mask2former/mask2former_swin-t-p4-w7-224_8xb2-lsj-50e_coco.py'\n\n# We also need to change the num_classes in head to match the dataset's annotation\nnum_things_classes = 3\nnum_stuff_classes = 0\nnum_classes = num_things_classes + num_stuff_classes\nimage_size = (1024, 1024) #(512, 512)\nbatch_augments = [\n    dict(\n        type='BatchFixedSizePad',\n        size=image_size,\n        img_pad_value=0,\n        pad_mask=True,\n        mask_pad_value=0,\n        pad_seg=False)\n]\ndata_preprocessor = dict(\n    type='DetDataPreprocessor',\n    mean=[123.675, 116.28, 103.53],\n    std=[58.395, 57.12, 57.375],\n    bgr_to_rgb=True,\n    pad_size_divisor=32,\n    pad_mask=True,\n    mask_pad_value=0,\n    pad_seg=False,\n    batch_augments=batch_augments)\nmodel = dict(\n    data_preprocessor=data_preprocessor,\n    panoptic_head=dict(\n        num_things_classes=num_things_classes,\n        num_stuff_classes=num_stuff_classes,\n        loss_cls=dict(class_weight=[1.0] * num_classes + [0.1])),\n    panoptic_fusion_head=dict(\n        num_things_classes=num_things_classes,\n        num_stuff_classes=num_stuff_classes),\n    test_cfg=dict(panoptic_on=False))\n\n\n# Modify dataset related settings\ndata_root = '/kaggle/input/hubmap-hacking-the-human-vasculature/'\nclasses = (\"glomerulus\", \"blood_vessel\", \"unsure\")\ndataset_type = 'CocoDataset'\ntrain_dataloader = dict(\n    batch_size=2,\n    num_workers=2,\n    dataset=dict(\n        type=dataset_type,\n        metainfo=dict(classes=classes),\n        # data_root=data_root,\n        ann_file='/kaggle/input/hubmap2023-folds-ver0610/coco_annotations_train_fold0.json',\n        data_prefix=dict(img= data_root + 'train/')\n        )\n    )\n\nval_dataloader = dict(\n    batch_size=1,\n    num_workers=2,\n    dataset=dict(\n        type=dataset_type,\n        test_mode=True,\n        metainfo=dict(classes=classes),\n        # data_root=data_root,\n        ann_file='/kaggle/input/hubmap2023-folds-ver0610/coco_annotations_valid_fold0.json',\n        data_prefix=dict(img= data_root + 'train/')\n        )\n    )\n\ntest_dataloader = dict(\n    batch_size=1,\n    num_workers=2,\n    dataset=dict(\n        type=dataset_type,\n        test_mode=True,\n        metainfo=dict(classes=classes),\n        # data_root=data_root,\n        ann_file='/kaggle/input/hubmap2023-folds-ver0610/coco_annotations_valid_fold0.json',\n        data_prefix=dict(img=data_root+'train/')\n        )\n    )\n\n# iterations setting\nmax_iters = 368750 // 20\nparam_scheduler = dict(\n    type='MultiStepLR',\n    begin=0,\n    end=368750 // 20,\n    by_epoch=False,\n    milestones=[327778 // 20, 355092 // 20],\n    gamma=0.1)\ninterval = 2000 #5000 // 20\ndynamic_intervals = [(365001 // 20, 368750 // 20)]\ntrain_cfg = dict(\n    type='IterBasedTrainLoop',\n    max_iters=368750 // 20,\n    val_interval= 2000,\n    dynamic_intervals=[(365001 // 20, 368750 // 20)])\ndefault_hooks = dict(\n    timer=dict(type='IterTimerHook'),\n    logger=dict(type='LoggerHook', interval=200),\n    param_scheduler=dict(type='ParamSchedulerHook'),\n    checkpoint=dict(\n        type='CheckpointHook',\n        interval= 2000, #5000 // 10,\n        by_epoch=False,\n        save_last=True,\n        max_keep_ckpts=3),\n    sampler_seed=dict(type='DistSamplerSeedHook'),\n    visualization=dict(type='DetVisualizationHook'))\n\n# Modify metric related settings\nval_evaluator = dict(ann_file='/kaggle/input/hubmap2023-folds-ver0610/coco_annotations_valid_fold0.json')\ntest_evaluator = val_evaluator\nwork_dir = '/kaggle/working/outputs'\nload_from = \"https://download.openmmlab.com/mmdetection/v3.0/mask2former/mask2former_swin-t-p4-w7-224_8xb2-lsj-50e_coco/mask2former_swin-t-p4-w7-224_8xb2-lsj-50e_coco_20220508_091649-01b0f990.pth\"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!python /kaggle/input/mmdet-v3/tools/train.py ./configs.py","metadata":{"id":"CavfsG9MspCL","outputId":"a7fa9371-e348-43c4-bd82-b7e1dd808788","execution":{"iopub.status.busy":"2023-06-12T00:39:55.634500Z","iopub.execute_input":"2023-06-12T00:39:55.634850Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}