From 98b6550322633046ae5e66a9851bee6d90cd693a Mon Sep 17 00:00:00 2001 From: AkshathRaghav Date: Wed, 27 Sep 2023 03:40:00 -0400 Subject: [PATCH 1/8] Adding functions for checking masks, minor GPU changes --- .../projects/maskformer/configs/maskformer.py | 25 +++++- .../maskformer/tasks/panoptic_maskformer.py | 88 +++++++++++++++++++ models/official/projects/maskformer/train.py | 6 +- .../projects/maskformer/train_on_gpu.sh | 28 +++--- 4 files changed, 127 insertions(+), 20 deletions(-) diff --git a/models/official/projects/maskformer/configs/maskformer.py b/models/official/projects/maskformer/configs/maskformer.py index 51a3cae4..fb5d3273 100644 --- a/models/official/projects/maskformer/configs/maskformer.py +++ b/models/official/projects/maskformer/configs/maskformer.py @@ -114,6 +114,10 @@ class MaskFormerTask(cfg.TaskConfig): SET_MODEL_BFLOAT16 = False SET_DATA_BFLOAT16 = True +if not os.environ.get('USE_BFLOAT16_DATA'): + SET_DATA_BFLOAT16 = False + + @exp_factory.register_config_factory('maskformer_coco_panoptic') def maskformer_coco_panoptic() -> cfg.ExperimentConfig: """Config to get results that matches the paper.""" @@ -124,9 +128,22 @@ def maskformer_coco_panoptic() -> cfg.ExperimentConfig: ckpt_interval = (COCO_TRAIN_EXAMPLES // train_batch_size) * 10 # Don't write ckpts frequently. Slows down the training image_size = int(os.environ.get('IMG_SIZE')) - steps_per_epoch = COCO_TRAIN_EXAMPLES // train_batch_size - train_steps = 300 * steps_per_epoch # 300 epochs - decay_at = train_steps - 100 * steps_per_epoch # 200 epochs + if os.environ.get('STEPS_PER_EPOCH'): + steps_per_epoch = int(os.environ.get('STEPS_PER_EPOCH')) + else: + steps_per_epoch = COCO_TRAIN_EXAMPLES // train_batch_size + + if os.environ.get('NUM_EPOCH'): + train_steps = int(os.environ.get('NUM_EPOCH')) * steps_per_epoch + decay_at = int(2/3 * train_steps) + else: + train_steps = 300 * steps_per_epoch # 300 epochs + decay_at = train_steps - 100 * steps_per_epoch # 200 epochs + + # steps_per_epoch = COCO_TRAIN_EXAMPLES // train_batch_size + # train_steps = 300 * steps_per_epoch # 300 epochs + # decay_at = train_steps - 100 * steps_per_epoch # 200 epochs + config = cfg.ExperimentConfig( task = MaskFormerTask( init_checkpoint="", @@ -179,7 +196,7 @@ def maskformer_coco_panoptic() -> cfg.ExperimentConfig: )), trainer=cfg.TrainerConfig( train_steps=train_steps, - validation_steps=COCO_VAL_EXAMPLES // eval_batch_size, + validation_steps=COCO_VAL_EXAMPLES // eval_batch_size if not os.environ.get('VAL_STEPS') else int(os.environ.get('VAL_STEPS')), steps_per_loop=steps_per_epoch, summary_interval=steps_per_epoch, checkpoint_interval=steps_per_epoch, diff --git a/models/official/projects/maskformer/tasks/panoptic_maskformer.py b/models/official/projects/maskformer/tasks/panoptic_maskformer.py index 1ad9763a..fd9e575d 100644 --- a/models/official/projects/maskformer/tasks/panoptic_maskformer.py +++ b/models/official/projects/maskformer/tasks/panoptic_maskformer.py @@ -37,6 +37,9 @@ class PanopticTask(base_task.Task): """ def build_model(self): """Builds MaskFormer Model.""" + + self.class_ids = {} + logging.info('Building MaskFormer model.') input_specs = tf.keras.layers.InputSpec(shape=[None] + self._task_config.model.input_size) @@ -58,6 +61,8 @@ def build_model(self): logging.info('Maskformer model build successful.') inputs = tf.keras.Input(shape=input_specs.shape[1:]) model(inputs) + + return model @@ -185,8 +190,87 @@ def build_metrics(self, training=True): ) return metrics + def _log_classes(self, labels: Dict[str, Any]) -> List[Dict[int, int]]: + """ + Logs all the class IDs viewed during training and evaluation. + Returns: + A dictionary of class ids and their counts across all images in batch + """ + + all_unique_ids = labels["unique_ids"]._numpy() + classes_in_batch = [] + for size in range(all_unique_ids.shape[0]): + unique_ids = all_unique_ids[size, :] + classes_in_image = {} + for class_id in unique_ids: + if class_id in classes_in_image: + classes_in_image[class_id] += 1 + else: + classes_in_image[class_id] = 1 + classes_in_batch.append(classes_in_image) + + for class_id in unique_ids: + if class_id in self.class_ids: + self.class_ids[class_id] += 1 + else: + self.class_ids[class_id] = 1 + + return classes_in_batch + + def _check_contigious_mask(self, labels: Dict[str, Any]): + """ + Checks if all the contigious masks are mapped properly from the category masks + + Returns: + EagerTensor with correctly mapped contigious masks + """ + mapping_dict = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, \ + 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 27: 25, 28: 26, 31: 27, 32: 28, 33: 29, 34: 30, 35: 31, 36: 32, 37: 33, 38: 34, \ + 39: 35, 40: 36, 41: 37, 42: 38, 43: 39, 44: 40, 46: 41, 47: 42, 48: 43, 49: 44, 50: 45, 51: 46, 52: 47, 53: 48, 54: 49, 55: 50, 56: 51, 57: 52, \ + 58: 53, 59: 54, 60: 55, 61: 56, 62: 57, 63: 58, 64: 59, 65: 60, 67: 61, 70: 62, 72: 63, 73: 64, 74: 65, 75: 66, 76: 67, 77: 68, 78: 69, 79: 70, \ + 80: 71, 81: 72, 82: 73, 84: 74, 85: 75, 86: 76, 87: 77, 88: 78, 89: 79, 90: 80, 92: 81, 93: 82, 95: 83, 100: 84, 107: 85, 109: 86, 112: 87, \ + 118: 88, 119: 89, 122: 90, 125: 91, 128: 92, 130: 93, 133: 94, 138: 95, 141: 96, 144: 97, 145: 98, 147: 99, 148: 100, 149: 101, 151: 102, \ + 154: 103, 155: 104, 156: 105, 159: 106, 161: 107, 166: 108, 168: 109, 171: 110, 175: 111, 176: 112, 177: 113, 178: 114, 180: 115, 181: 116, \ + 184: 117, 185: 118, 186: 119, 187: 120, 188: 121, 189: 122, 190: 123, 191: 124, 192: 125, 193: 126, 194: 127, 195: 128, 196: 129, 197: 130, \ + 198: 131, 199: 132, 200: 133} + + category_mask = labels["category_mask"]._numpy() + contigious_mask = labels["contigious_mask"]._numpy() + + for size in range(category_mask.shape[0]): + cat = category_mask[size] + cont = contigious_mask[size, :, :, :] + mapped_cat = np.expand_dims(np.array([[mapping_dict.get(int(x), int(x)) for x in row] for row in cat]), axis=-1) + if not np.array_equal(mapped_cat, cont): + raise ValueError('not equal') + + contigious_mask[size, :, :, :] = mapped_cat + + return tf.convert_to_tensor(contigious_mask) + + def _check_induvidual_masks(self, labels: Dict[str, Any], class_ids: List[Dict[int, int]]): + """ + Checks if all the induvidual masks are given the correct instance id + + Returns: + EagerTensor with correctly mapped induvidual masks + """ + + induvidual_masks = labels["individual_masks"]._numpy() + zero_mask = np.zeros((induvidual_masks.shape[2], induvidual_masks.shape[3]), dtype=induvidual_masks.dtype) + + for size in range(len(class_ids)): + result = np.any(induvidual_masks[size, :, :, :, :] != 0, axis=(1, 2)) + for i, has_non_zero in enumerate(result): + if has_non_zero: + if i > (100-class_ids[size][0]-1): + print('yes') + induvidual_masks[size, i, :, :, induvidual_masks.shape[4]] = zero_mask + return tf.convert_to_tensor(induvidual_masks) + + def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: tf.keras.optimizers.Optimizer, metrics: Optional[List[Any]] = None) -> Dict[str, Any]: """ Does forward and backward. @@ -202,6 +286,10 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t """ features, labels = inputs + + labels["individual_masks"] = self._check_induvidual_masks(labels, self._log_classes(labels)) + labels["contigious_mask"] = self._check_contigious_mask(labels) + with tf.GradientTape() as tape: outputs = model(features, training=True) ########################################################## diff --git a/models/official/projects/maskformer/train.py b/models/official/projects/maskformer/train.py index a59c91d7..5eba5998 100644 --- a/models/official/projects/maskformer/train.py +++ b/models/official/projects/maskformer/train.py @@ -26,7 +26,6 @@ from official.core import train_lib from official.core import train_utils from official.modeling import performance -from cloud_tpu_client import Client from official.projects.maskformer.configs import maskformer from official.projects.maskformer.tasks import panoptic_maskformer @@ -35,10 +34,13 @@ def main(_): if FLAGS.tpu: + from cloud_tpu_client import Client # This is for configuring the TPU software version programatically c = Client(os.environ['TPU_NAME'], zone=os.environ['TPU_ZONE'], project=os.environ['TPU_PROJECT']) c.configure_tpu_version(os.environ["TPU_SOFTWARE"], restart_type='ifNeeded') - c.wait_for_healthy() + c.wait_for_healthy() + else: + os.environ['TF_GPU_ALLOCATOR'] = 'cuda_malloc_async' gin.parse_config_files_and_bindings(FLAGS.gin_file, FLAGS.gin_params) diff --git a/models/official/projects/maskformer/train_on_gpu.sh b/models/official/projects/maskformer/train_on_gpu.sh index 81c8a16b..7bc67afb 100755 --- a/models/official/projects/maskformer/train_on_gpu.sh +++ b/models/official/projects/maskformer/train_on_gpu.sh @@ -1,14 +1,9 @@ #!/bin/bash -# module load gcc/9.3.0 -# cd /depot/qqiu/data/vishal/tf-maskformer/ -# conda activate /depot/qqiu/data/vishal/envs/tmaskformer/ -# module load anaconda/2020.11-py38 -# module load cuda/11.7.0 cudnn/cuda-11.7_8.6 gcc/6.3.0 -train_bsize=8 -eval_bsize=8 -export PYTHONPATH=$PYTHONPATH:/depot/qqiu/data/vishal/tf-maskformer/models + +train_bsize=2 +eval_bsize=1 +export PYTHONPATH=/depot/davisjam/data/akshath/MaskFormer_tf/tf-maskformer/models export MODEL_DIR="./" -export RESNET_CKPT="/depot/davisjam/data/vishal/pretrained_ckpts/tfmg_resnet50/ckpt-62400" export TFRECORDS_DIR="/depot/davisjam/data/vishal/datasets/coco/tfrecords" export TRAIN_BATCH_SIZE=$train_bsize export EVAL_BATCH_SIZE=$eval_bsize @@ -16,13 +11,18 @@ export BASE_LR=0.00005 export NO_OBJ_CLS_WEIGHT=0.1 export IMG_SIZE=640 export PRINT_OUTPUTS=True +# Akshath +export MODE="train_and_eval" +export USE_BFLOAT16_DATA=True +export STEPS_PER_EPOCH=10 +export NUM_EPOCH=1 +export VAL_STEPS=20 export OVERRIDES="runtime.distribution_strategy=one_device,runtime.num_gpus=1,runtime.mixed_precision_dtype=float32,\ task.train_data.global_batch_size=$train_bsize,\ -task.model.which_pixel_decoder=transformer_fpn,\ -task.init_checkpoint=$RESNET_CKPT" -python3 models/official/projects/maskformer/train.py \ +task.model.which_pixel_decoder=transformer_fpn" +python3 train.py \ --experiment maskformer_coco_panoptic \ - --mode eval \ + --mode $MODE \ --model_dir $MODEL_DIR \ - --params_override=$OVERRIDES + --params_override=$OVERRIDES > /depot/davisjam/data/akshath/exps/tf/train_eval_param/trial.txt From 20fe47253790a6a499093797675e7c51e9a53b37 Mon Sep 17 00:00:00 2001 From: g3nof0g Date: Wed, 27 Sep 2023 03:51:26 -0400 Subject: [PATCH 2/8] Update train_on_gpu.sh --- .../projects/maskformer/train_on_gpu.sh | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/models/official/projects/maskformer/train_on_gpu.sh b/models/official/projects/maskformer/train_on_gpu.sh index 7bc67afb..6f494c67 100755 --- a/models/official/projects/maskformer/train_on_gpu.sh +++ b/models/official/projects/maskformer/train_on_gpu.sh @@ -1,9 +1,14 @@ #!/bin/bash - +# module load gcc/9.3.0 +# cd /depot/qqiu/data/vishal/tf-maskformer/ +# conda activate /depot/qqiu/data/vishal/envs/tmaskformer/ +# module load anaconda/2020.11-py38 +# module load cuda/11.7.0 cudnn/cuda-11.7_8.6 gcc/6.3.0 train_bsize=2 eval_bsize=1 -export PYTHONPATH=/depot/davisjam/data/akshath/MaskFormer_tf/tf-maskformer/models +export PYTHONPATH=$PYTHONPATH:/depot/qqiu/data/vishal/tf-maskformer/models export MODEL_DIR="./" +export RESNET_CKPT="/depot/davisjam/data/vishal/pretrained_ckpts/tfmg_resnet50/ckpt-62400" export TFRECORDS_DIR="/depot/davisjam/data/vishal/datasets/coco/tfrecords" export TRAIN_BATCH_SIZE=$train_bsize export EVAL_BATCH_SIZE=$eval_bsize @@ -11,18 +16,18 @@ export BASE_LR=0.00005 export NO_OBJ_CLS_WEIGHT=0.1 export IMG_SIZE=640 export PRINT_OUTPUTS=True -# Akshath -export MODE="train_and_eval" +export ON_GPU=True +export MODE="eval" export USE_BFLOAT16_DATA=True export STEPS_PER_EPOCH=10 export NUM_EPOCH=1 export VAL_STEPS=20 export OVERRIDES="runtime.distribution_strategy=one_device,runtime.num_gpus=1,runtime.mixed_precision_dtype=float32,\ task.train_data.global_batch_size=$train_bsize,\ -task.model.which_pixel_decoder=transformer_fpn" -python3 train.py \ +task.model.which_pixel_decoder=transformer_fpn,\ +task.init_checkpoint=$RESNET_CKPT" +python3 models/official/projects/maskformer/train.py \ --experiment maskformer_coco_panoptic \ --mode $MODE \ --model_dir $MODEL_DIR \ - --params_override=$OVERRIDES > /depot/davisjam/data/akshath/exps/tf/train_eval_param/trial.txt - + --params_override=$OVERRIDES From 15307a3db4d43dcc0f4f543a767eba71b498e2a0 Mon Sep 17 00:00:00 2001 From: AkshathRaghav Date: Mon, 9 Oct 2023 12:39:50 -0400 Subject: [PATCH 3/8] Testing loss differecnes --- .../__pycache__/__init__.cpython-39.pyc | Bin 176 -> 195 bytes .../__pycache__/optimization.cpython-39.pyc | Bin 4321 -> 4340 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 183 -> 202 bytes .../__pycache__/inference.cpython-39.pyc | Bin 2935 -> 2967 bytes .../maskformer_losses.cpython-39.pyc | Bin 7963 -> 7982 bytes .../maskformer/losses/maskformer_losses.py | 33 ++- .../__pycache__/__init__.cpython-39.pyc | Bin 185 -> 204 bytes .../__pycache__/maskformer.cpython-39.pyc | Bin 4884 -> 4942 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 193 -> 212 bytes .../detr_transformer.cpython-39.pyc | Bin 2461 -> 2480 bytes .../__pycache__/pixel_decoder.cpython-39.pyc | Bin 4076 -> 4095 bytes .../transformer_decoder.cpython-39.pyc | Bin 2834 -> 2853 bytes .../transformer_pixel_decoder.cpython-39.pyc | Bin 5219 -> 5238 bytes .../modeling/decoder/detr_transformer.py | 1 - .../__pycache__/__init__.cpython-39.pyc | Bin 192 -> 211 bytes .../__pycache__/nn_block.cpython-39.pyc | Bin 2357 -> 2499 bytes .../maskformer/modeling/layers/nn_block.py | 5 + .../maskformer/modeling/maskformer.py | 7 +- .../official/projects/maskformer/params.yaml | 226 ++++++++++++++++ .../tasks/__pycache__/__init__.cpython-39.pyc | Bin 182 -> 201 bytes .../panoptic_maskformer.cpython-39.pyc | Bin 10925 -> 15950 bytes .../maskformer/tasks/panoptic_maskformer.py | 246 ++++++++++++++---- ...9.gilbreth-g000.rcac.purdue.edu.86093.0.v2 | Bin 0 -> 40 bytes ...4.gilbreth-g000.rcac.purdue.edu.88080.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.105971.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.106666.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.109453.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.110006.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.111277.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.113560.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.115248.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g000.rcac.purdue.edu.118187.0.v2 | Bin 0 -> 40 bytes .../projects/maskformer/train_on_gpu.sh | 31 +-- 33 files changed, 477 insertions(+), 72 deletions(-) create mode 100644 models/official/projects/maskformer/params.yaml create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696795169.gilbreth-g000.rcac.purdue.edu.86093.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696795544.gilbreth-g000.rcac.purdue.edu.88080.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696800260.gilbreth-g000.rcac.purdue.edu.105971.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696800341.gilbreth-g000.rcac.purdue.edu.106666.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696801211.gilbreth-g000.rcac.purdue.edu.109453.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696801269.gilbreth-g000.rcac.purdue.edu.110006.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696801575.gilbreth-g000.rcac.purdue.edu.111277.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696802244.gilbreth-g000.rcac.purdue.edu.113560.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696802695.gilbreth-g000.rcac.purdue.edu.115248.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696803587.gilbreth-g000.rcac.purdue.edu.118187.0.v2 diff --git a/models/official/projects/maskformer/__pycache__/__init__.cpython-39.pyc b/models/official/projects/maskformer/__pycache__/__init__.cpython-39.pyc index 1f2d7037737720c0baeec5edd4f2e80aac9b2f85..46234b4698e299bcec44a7ebda3321c2086bef3c 100644 GIT binary patch delta 66 zcmdnMc$kqpk(ZZ?0SJC9VVcNoqn)9jl3I{oqMwpjmRX#YmK!4Cisa2L4% delta 50 zcmeyO_)w8Mk(ZZ?0SHnSux#WmW0Z*0Pf0DvFVQb7%q-PUNi0d!FUu^>NX*&1hS7r` E0CJoU!~g&Q diff --git a/models/official/projects/maskformer/losses/__pycache__/__init__.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/__init__.cpython-39.pyc index bf307409673c8b9c38abb7119645e17d6523e6c9..b47ab470354854a8bb2661569ace4de93f6b45ad 100644 GIT binary patch delta 66 zcmdnac#4rbk(ZZ?0SJC9VVcNoqn)pxl3I{oqMwpjmRX#Ym5 diff --git a/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc index 9860ab02dfd0f9980b1f6a65c9d2128653673d0b..a03ac3f12e21412767c3cfbc30fcfc6e0f0cfff7 100644 GIT binary patch delta 1592 zcmZ8h%WvF77@rwG*6Z~?v)M;B?*xhMft03D1XKYvAVrAq2r6o-%5ry{hxg&l*r5#? zYlYeqQq@F8AmFllNtyzx!oCJOxD>yF=S_tpTZ64faSMNTJ(Z||+u31huwWuR%Lrl#k_VDt`y0ec z!2R7{p>E#~SE%#Re&9J>U_xibX$N~wxVQ4Q6SUv-S=VKDxD#I?EnJAdCKm?F;3|U4 z5|Dz>E{asxT8M@iHsN@LDXyatUPs5|)@h`3!u2|eQXI>-5h73VRG#9Bumei!XopCt z=IK;*7GQtmElEqc|1TV|(Yt)3sDp2avvg(J3W>lE` zJ!ODVuk<`R#=+f-2+QXNPzYP+lN680F=n41OdsRkMT(;u>^kTyUJ|-!DjbifFdor8 zF(Q0Rj~cwd8!)12c}{gc1wK=}0jMz|;5Q>NP;XEhLpaoFJ_ECvl`h~24tWuTT5b3i zJg@`p+>^k(C=<-{S&G{#6nV<$&be7W*FZ3mnKpbe?EPbWa0+O4I47fuqQ=n{LNtIh zqK^5qsuuVRU*MIIA`T98$XguF@r4oeDQqCzw;&f*bzTLlDz8&=1x59qn7okJ#&Vfd z9WDXF7;z0a7!pPYBKe#G-`S8C>Fvd@24#JK1aEMDM!co=+eD0}G()+}#g8 zHnv(mbA$Ppo62JX{|&=}Oaf^ttonqP0#+ANoM<#W>bsk}fMET))_f)*;ZCA4r?>0I zKkD9vKHKkwiQ0u9HOX}R-Tju+v7H`G(mg-4-Gf7?bN2JcZtCg{DM-|o6NHHdo-bZb zOy<(VmTL!xU3o9CETl^Gj_-NUx)(5X|UVFpd zSWn_-)6jN&GrbD*VfyMo+)wh7ViO{bVcXDP$F_@rg4;llp<FnmWy<*|vL#IJ9Mv0EyKuuo7I@3qpuURb(tA2o7k-5NaJQ$fQNjh5klsY{ zkD_;IOJhK~3Q}}VKfkBOvTu+3UJC7=CYUamDC%XAeM`JNZhxE{a{Fu=9L{FL`60Ig z>+s>wKefh@#d^`q*p7Z;<;5-Z6yZrR8OshxC?hEW3FwjmT~SU=a!K!#D|YfURDpqN zk}w4{*|mT=k|RS3B+g8NTrx?YC0fN%x%^lPb(B($w$wpi(a=~+jsY517F>PI!ZfPV zkQV2JQU;~WM#^FvNKS50sI zVl2C?f&n?i`2=SXFIb4-XvidnBH}G5avjs;D-S$DOc$Pb` zV;1zI-&E)L{M7dBSe{tHX{^|@xiyZ{r0%@!&L?LV zUIue|X=Jf9bc0y#S$+^3p3UbyyX(&<$;ThdA5N#^Shdd1Y|N+lfz=zeZ+SV4>qNWS z0qsQhwI7eNJu9#WQ}3cXvHVe-9lGf0Vj>}SiheNf_q!8&B0R=JKZst}%NY8e-ZnZZ zluw85pc5_h+o=3bzq1g3oaDFT6-0+xw~Hf> zkup@Qg4C39v_fB!DpY0YjVr?{327|HGPEiDP*XsQA>vWikQ*!-8n3G2$LXojH^%J; zMFHOs?4QOGB>M4WWD1fmA~caqPjqc9HUiuAr(S}C diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index 04b0d5597d2406252d2859086a965ffa72cc2aae..9f15b9d666a5c69e2205be5bfd02e629da26762f 100644 GIT binary patch delta 145 zcmbPjx6Y0)k(ZZ?0SJl}_ai!%~S zGW2~Di?iMGi*i$o;!DythcizT;OA3e5n*OwlwuTOWctg(w)v0n5mv?}lMhNN^D-(h vb1?xSqZF$M^W=|`(u^#dd8Jk}F@D^)Ouj8UiP?z5VRC`oJ^&@IAw~cI diff --git a/models/official/projects/maskformer/losses/maskformer_losses.py b/models/official/projects/maskformer/losses/maskformer_losses.py index 8193422e..1c1d188b 100644 --- a/models/official/projects/maskformer/losses/maskformer_losses.py +++ b/models/official/projects/maskformer/losses/maskformer_losses.py @@ -120,13 +120,13 @@ def memory_efficient_matcher(self, outputs, y_true): tgt_mask_permuted = tf.reshape(tgt_mask_permuted, [tf.shape(tgt_mask_permuted)[0],tf.shape(tgt_mask_permuted)[1], -1]) # [b, 100, h*w] cost_focal = FocalLossMod().batch(tgt_mask_permuted, out_mask) - cost_dice = DiceLoss().batch(tgt_mask_permuted, out_mask) + cost_dice = DiceLoss().batch(tgt_mask_permuted, out_mask) total_cost = ( - self.cost_focal * cost_focal - + self.cost_class * cost_class - + self.cost_dice * cost_dice + self.cost_focal * cost_focal + + self.cost_class * cost_class + + self.cost_dice * cost_dice ) max_cost = ( @@ -135,14 +135,26 @@ def memory_efficient_matcher(self, outputs, y_true): self.cost_dice * 0.0 ) - + # print('cost_focal') + # print(cost_focal, cost_class, cost_dice) + # print('total_ocst') + # print(total_cost) + # print('max_cost') + # print(max_cost) + # Append highest cost where there are no objects : No object class == 0 (self.ignore_label) valid = tf.expand_dims(tf.cast(tf.not_equal(tgt_ids, self.ignore_label), dtype=total_cost.dtype), axis=1) + # print('max_cost - ', max_cost) + # print('total_cost before - ', total_cost) + total_cost = (1 - valid) * max_cost + valid * total_cost + # print('total_cost after - ', total_cost) + total_cost = tf.where( tf.logical_or(tf.math.is_nan(total_cost), tf.math.is_inf(total_cost)), max_cost * tf.ones_like(total_cost, dtype=total_cost.dtype), total_cost) + _, inds = matchers.hungarian_matching(total_cost) indices = tf.stop_gradient(inds) @@ -168,10 +180,10 @@ def get_loss(self, outputs, y_true, indices): num_masks = tf.reduce_sum(tf.cast(tf.logical_not(background), tf.float32), axis=-1) xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=target_classes, logits=cls_assigned) - + cls_loss = tf.where(background, self.eos_coef * xentropy, xentropy) - cls_weights = tf.where(background, self.eos_coef * tf.ones_like(cls_loss), tf.ones_like(cls_loss)) + # print('Weights: ', cls_weights) num_masks_per_replica = tf.reduce_sum(num_masks) @@ -181,7 +193,10 @@ def get_loss(self, outputs, y_true, indices): num_masks_sum, cls_weights_sum = replica_context.all_reduce(tf.distribute.ReduceOp.SUM,[num_masks_per_replica, cls_weights_per_replica]) # Final losses + # print('Losses: ', cls_loss) + cls_loss = tf.math.divide_no_nan(tf.reduce_sum(cls_loss), cls_weights_sum) + # print('Final loss given for changing the tvars - ', cls_loss) out_mask = mask_assigned tgt_mask = individual_masks @@ -206,10 +221,12 @@ def get_loss(self, outputs, y_true, indices): focal_loss = FocalLossMod(alpha=0.25, gamma=2)(tgt_mask, out_mask) focal_loss_weighted = tf.where(background, tf.zeros_like(focal_loss), focal_loss) focal_loss_final = tf.math.divide_no_nan(tf.math.reduce_sum(tf.math.reduce_sum(focal_loss_weighted, axis=-1)), num_masks_sum) - + # print(focal_loss_weighted) dice_loss = DiceLoss()(tgt_mask, out_mask) dice_loss_weighted = tf.where(background, tf.zeros_like(dice_loss), dice_loss) dice_loss_final = tf.math.divide_no_nan(tf.math.reduce_sum(tf.math.reduce_sum(dice_loss_weighted, axis=-1)), num_masks_sum) + # print(dice_loss_weighted) + # raise ValueError('2') return cls_loss, focal_loss_final, dice_loss_final diff --git a/models/official/projects/maskformer/modeling/__pycache__/__init__.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/__init__.cpython-39.pyc index 7705fe67e6a81cf52136567b12a48416ebeeda2d..24b407343c63192fda07de74739c71c7b20492b9 100644 GIT binary patch delta 66 zcmdnVc!rTXk(ZZ?0SJCBVVcNoqg|+>d%Qdh(<69XAMWgS;xAXH5y}a97o_2rA^GhMri9a!Axw1c8n%j3a3Il zPSY%dGc1d0W`oFz*#^Ea2hZqJ|@~xLF^}b z`bX4)Ojen_NGx@9kMKEgxdoU9EGW#1W9G{)a6J&}>IJnHh%e^uHLy4a+y&fID8{7j zRLcSH`H!aYaO+q#Ak06SR=i2((YpAQe9{-@oQB|fkDw(-8zo4pZ>C;lLCLt)s;#ny zyE`l$qHRD}!@okLxkv)5?A9vP#pmLC>i+P9zfMI>M$6Qf@dLFnFj?U)JB-{G%ju2L zur8h1o-d6WS+k%860I}_wt3tw6W_Ng#12+Du^?hc6f#rD6Ewr}PxXp67b(VPco&?d z18`gX%8Yk2FvAzo(C`Ew5mVU#O&%9^HZQibv%L*<>SdeKS1R7`REQuGnNjgO`yMTb z_sxa5u;UJ-CkirIrnc`h5-hn6UxMXuYYtl4vO={?D7CC3)rAizd^>67mlOlJ`QA=x z2BhY@yh7bIz7Fv*bw}QY)M}p8TpwQ+KXUzItfg)5TTVyg8?f1903d%6vubk?ryu^yDYjSAS4pv#*g(2jK)BSK@@d~qDV$#sqHMgFtc5zMM5;u zL@!L#s2TN=#0M}@xzP(>!3XFK*CalHB*r;Kfoy1#Ur*2f%$c6k)BYTIH;}Q?=|n^x ze;(;%z4L9R`>`+YoQQ*H1S5G>sKQjNBJinHV^JIpZH>lQ9LGaDN_A#nBeY{Q!IC)1 zQaHuZIL$IR!?HNbayZBGIFBOZ5hw2G&mxXa(0pOO0>!S%ocyf#sE_Om3e6?fmX2Q&n|goWMTi;)+yq<#T$U)S{EEC_F=CW*gW%Nw z2LOHIzA=VQi%&*r=oB~j`rK-IHJ3BOxeD%Hv1#-S425EYS#!jc z58onu62$9(8-N*!su)hZ?}E@RVMje9eV+K0ST(`ow*b?C+Y;qypg9fO=RJF93JJ zeiu@NHEkCbB<6^3+HSMfn0q3Ar|u2j`5#nP0@bEo5ZhAQ7ba`mW&c*b6tB`Nhr&8F zX0^OPZ<1vbS`wgz_Ju_;n<=6<;zH&MqT+Ri<>geys=Ny}-Vc}(`RrJC9n5eT+PZD< zA;GhU<#euQ$-%aIG~1%|gIwyBBqAswPce}DhGxWiu5at@nUHx_B1qcQ@;pZTy6bQo z+~KYiw6tl4s!b?0&0ST5gA>k7TE@Y5?ZG7LNYlh@{-}77?I1u{w!^%Jv;GZITO f^nDYHv)%HGa#M@qOVTz+F)d_eWZe9ReIX+Ni=r7= delta 59 zcmdlWJXe@Ek(ZZ?0SNxqaHP6yz$8(qpORXTU!q@Fm|3cyl30?cUzS;%k(jgj8IwH+ E0Bpbz2LJ#7 diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc index 246f0afc63cef947f789ea628063ace075786c5a..956ff9400234a4da6a7befceb6825fdc3b173621 100644 GIT binary patch delta 69 zcmaE?@lAs}k(ZZ?0SJCBVcN)@$g16?pORXTU!tFqSe99wm6!`;lqBjWW*289mSpJr WCKhMANX*$ho%KE+ E0Exg5;Q#;t diff --git a/models/official/projects/maskformer/modeling/decoder/detr_transformer.py b/models/official/projects/maskformer/modeling/decoder/detr_transformer.py index fffb654e..3d9ebe52 100644 --- a/models/official/projects/maskformer/modeling/decoder/detr_transformer.py +++ b/models/official/projects/maskformer/modeling/decoder/detr_transformer.py @@ -64,7 +64,6 @@ def call(self, inputs): target_shape = tf.shape(targets) if mask is not None: - cross_attention_mask = tf.tile( tf.expand_dims(mask, axis=1), [1, target_shape[1], 1]) self_attention_mask=tf.ones( diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/__init__.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/__init__.cpython-39.pyc index a5818e23c3d67bd08636e7e6613e3e0e59a1a6b0..b67a33737454638883327c0750eaeddda3a50ac9 100644 GIT binary patch delta 66 zcmX@Wc$twqk(ZZ?0SJCBVVcNoqg|n&l3I{oqMwpjmRX#Ym B4;laf diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc index 8ebb1f1e5909d6e8ab57bfe720c87d226dc13f1a..07fdd7ad2b7d53ef794bfdee4c8f1bb8413746d0 100644 GIT binary patch delta 1084 zcmZ8g-A)rh6yDjtZnv~Rp{R%;MiVyz^#bmU35n5|fEu~0BFnAsz$5T(1Pp3>H_;#IjYSK zx8amn2@zI{z}psf>a-k!m?PZOYk5X@LHAoeu^w27m-uh3#Al>i>U!Pa&}o$cEhPb< z!5K76$d(nAzhlBj5z#^3i3d3s3Upu4S4^rX1U2m?OsMwJ-X|zLif4q(iD`OHtC+)rTK1ild8S@J()5Y=bhpsdF)jn#&qG> z?}t?kSp%WnI2COSrFS(eBq9!l|Oadeqw z1K^qF%*;|=LSH0O&Z3>2W!jZY44`sT-4#Gvp>d8Ael1m+#F}vJV59$!*^G6)_)$uB zP47gmfpg@HSRx17GhxnqArD*d0NHSn5boE(=Ejp1Bu(A`?2N}LEjaeo;&ad#)}^7K zqQe|ku_rsC_j0r-lf6!dw>cFn=3n92j!4D3%BR>{9f?N-zLTzaALgVh&SZ!11Am-k!-6oo@Wly)S`GD;7eAEM30XqdNmcax&cS{B~kw_kU zFoV`~l8%a;nxrEEH4K_XXdtW@STjrY{loQT^t2Eb4CqiKX;uv4N=Xx1nhY=;j;oi! zjRni|mrMs8Cgo}MDY$lDJ}EcbG95?2^QW^lq|TOD#*iT)7WvK zr^@1aGJrsRB|H5P{bAWGX3c5DtABP|BBR4^vC6NpVzd0}U9cMjn{ zU6A>rdKZ4bJa2ZftE;S&CwnYUhG|@fbv$B|5n$P%HdNx1(Oamxr=jXC(K44 ZNims$==z{Jf|-5Jb< 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 F{}(l_j@$qM delta 4785 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 IqRBe>FRpi=ivR!s diff --git a/models/official/projects/maskformer/tasks/panoptic_maskformer.py b/models/official/projects/maskformer/tasks/panoptic_maskformer.py index fd9e575d..50243713 100644 --- a/models/official/projects/maskformer/tasks/panoptic_maskformer.py +++ b/models/official/projects/maskformer/tasks/panoptic_maskformer.py @@ -1,7 +1,7 @@ import os from absl import logging import tensorflow as tf - +import matplotlib.pyplot as plt from official.core import base_task from official.core import task_factory from official.core import train_utils @@ -39,7 +39,33 @@ def build_model(self): """Builds MaskFormer Model.""" self.class_ids = {} - + self.plot_collection = {} + self.plot_collection_labels = {0:[]} + self.temp = 0 + self.background_empty_mask = {} + self.labelled_empty_mask = {} + self.background_non_empty_mask = {} + self.class_id_counts = {} + self.log_dir = os.environ.get('LOG_DIR') + self.run_number = os.environ.get('RUN_NUMBER') + + if self.log_dir is None: + try: + os.mkdir(self.log_dir) + except: + pass + os.mkdir(os.path.join(self.log_dir, self.run_number)) # If there is existing, then throw error + self.log_dir = os.path.join(self.log_dir, self.run_number) + + with open(os.path.join(self.log_dir, 'checking_labels.txt'), 'w') as file: + pass + + with open(os.path.join(self.log_dir, 'settings.txt'), 'w') as file: + file.write("RUN: " + str(os.environ.get('RUN_NUMBER')) + '\n') + file.write("BSIZE: " + str(os.environ.get('TRAIN_BATCH_SIZE'))+ '\n') + file.write("BASE_LR: " + str(os.environ.get('BASE_LR'))+ '\n') + file.write("NO_OBJ_CLS_WEIGHT: " + str(os.environ.get('NO_OBJ_CLS_WEIGHT'))+ '\n') + logging.info('Building MaskFormer model.') input_specs = tf.keras.layers.InputSpec(shape=[None] + self._task_config.model.input_size) @@ -61,16 +87,14 @@ def build_model(self): logging.info('Maskformer model build successful.') inputs = tf.keras.Input(shape=input_specs.shape[1:]) model(inputs) - - - + model.summary() return model def initialize(self, model: tf.keras.Model) -> None: """ Used to initialize the models with checkpoint """ - + logging.info('Initializing model from checkpoint: %s', self._task_config.init_checkpoint) if not self._task_config.init_checkpoint: return @@ -243,13 +267,11 @@ def _check_contigious_mask(self, labels: Dict[str, Any]): cont = contigious_mask[size, :, :, :] mapped_cat = np.expand_dims(np.array([[mapping_dict.get(int(x), int(x)) for x in row] for row in cat]), axis=-1) if not np.array_equal(mapped_cat, cont): - raise ValueError('not equal') - contigious_mask[size, :, :, :] = mapped_cat return tf.convert_to_tensor(contigious_mask) - def _check_induvidual_masks(self, labels: Dict[str, Any], class_ids: List[Dict[int, int]]): + def _check_induvidual_masks(self, labels: Dict[str, Any], class_id_counts: List[Dict[int, int]]): """ Checks if all the induvidual masks are given the correct instance id @@ -257,16 +279,70 @@ def _check_induvidual_masks(self, labels: Dict[str, Any], class_ids: List[Dict[i EagerTensor with correctly mapped induvidual masks """ + # mapping_dict = {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 13: 12, 14: 13, 15: 14, 16: 15, 17: 16, 18: 17, \ + # 19: 18, 20: 19, 21: 20, 22: 21, 23: 22, 24: 23, 25: 24, 27: 25, 28: 26, 31: 27, 32: 28, 33: 29, 34: 30, 35: 31, 36: 32, 37: 33, 38: 34, \ + # 39: 35, 40: 36, 41: 37, 42: 38, 43: 39, 44: 40, 46: 41, 47: 42, 48: 43, 49: 44, 50: 45, 51: 46, 52: 47, 53: 48, 54: 49, 55: 50, 56: 51, 57: 52, \ + # 58: 53, 59: 54, 60: 55, 61: 56, 62: 57, 63: 58, 64: 59, 65: 60, 67: 61, 70: 62, 72: 63, 73: 64, 74: 65, 75: 66, 76: 67, 77: 68, 78: 69, 79: 70, \ + # 80: 71, 81: 72, 82: 73, 84: 74, 85: 75, 86: 76, 87: 77, 88: 78, 89: 79, 90: 80, 92: 81, 93: 82, 95: 83, 100: 84, 107: 85, 109: 86, 112: 87, \ + # 118: 88, 119: 89, 122: 90, 125: 91, 128: 92, 130: 93, 133: 94, 138: 95, 141: 96, 144: 97, 145: 98, 147: 99, 148: 100, 149: 101, 151: 102, \ + # 154: 103, 155: 104, 156: 105, 159: 106, 161: 107, 166: 108, 168: 109, 171: 110, 175: 111, 176: 112, 177: 113, 178: 114, 180: 115, 181: 116, \ + # 184: 117, 185: 118, 186: 119, 187: 120, 188: 121, 189: 122, 190: 123, 191: 124, 192: 125, 193: 126, 194: 127, 195: 128, 196: 129, 197: 130, \ + # 198: 131, 199: 132, 200: 133} + induvidual_masks = labels["individual_masks"]._numpy() - zero_mask = np.zeros((induvidual_masks.shape[2], induvidual_masks.shape[3]), dtype=induvidual_masks.dtype) + # contig_mask = labels["contigious_mask"]._numpy().copy() + # instance_mask = labels["instance_mask"]._numpy().copy() + # zero_mask = np.zeros((induvidual_masks.shape[2], induvidual_masks.shape[3]), dtype=induvidual_masks.dtype) + class_ids = labels["unique_ids"]._numpy().copy() + + # induvidual_masks_in_image = induvidual_masks[size, :, :, :, :] + # instance_mask_in_image = instance_mask[size, :, :, :] + # contig_mask_in_image = contig_mask[size, :, :, :] + # combined_mask = np.array([[tuple((contig_mask_in_image[i, j], instance_mask_in_image[i, j])) for j in range(contig_mask_in_image.shape[1])] for i in range(contig_mask_in_image.shape[0])]) + + # with open('/depot/davisjam/data/akshath/exps/tf/indu_masks/indu_masks.txt', 'w') as file: + # file.write(str(combined_mask) + '\n') + # file.write(str(np.unique(combined_mask, axis=0)) + '\n') + + # for a in np.unique(instance_mask_in_image): + # plt.imshow(instance_mask_in_image == a) + # plt.savefig(f'/depot/davisjam/data/akshath/exps/tf/indu_masks/my_image__{size}_{a}.png') + + # unique_ids = class_ids[size, :] + # # np.save('/depot/davisjam/data/akshath/exps/tf/indu_masks/instance.npy', instance_mask_in_image) + # return + # for i, class_id in enumerate(unique_ids): + # if class_id != 0: + # print(class_id) + # instance_mask_in_image[instance_mask_in_image == i] + # if induvidual_masks_in_image[i,:,:,:] + # if not np.all((induvidual_masks_in_image[i,:,:,:] == 0) | (induvidual_masks_in_image[i,:,:,:] == mapped_id)): + # induvidual_masks_in_image[i, :, :, :] = np.array([[mapped_id for x in row] for row in induvidual_masks_in_image[i, :, :, :]]) for size in range(len(class_ids)): - result = np.any(induvidual_masks[size, :, :, :, :] != 0, axis=(1, 2)) - for i, has_non_zero in enumerate(result): - if has_non_zero: - if i > (100-class_ids[size][0]-1): - print('yes') - induvidual_masks[size, i, :, :, induvidual_masks.shape[4]] = zero_mask + + # background_non_empty_mask = 0 + labelled_empty_mask = 0 + # background_empty_mask = 0 + + for i, mask in enumerate(induvidual_masks[size, :, :, :, :]): + if class_ids[size][i] != 0: + if np.all(mask == 0): + labelled_empty_mask += 1 + class_ids[size][i] = 0 + + self.labelled_empty_mask[self.temp] = labelled_empty_mask + + with open(os.path.join(self.log_dir, 'background_empty_mask.txt'), 'w') as file: + file.write(str(self.background_empty_mask) + '\n') + with open(os.path.join(self.log_dir, 'labelled_empty_mask.txt'), 'w') as file: + file.write(str(self.labelled_empty_mask) + '\n') + with open(os.path.join(self.log_dir, 'background_non_empty_mask.txt'), 'w') as file: + file.write(str(self.background_non_empty_mask) + '\n') + with open(os.path.join(self.log_dir, 'class_id_counts.txt'), 'w') as file: + file.write(str(self.class_id_counts) + '\n') + with open(os.path.join(self.log_dir, 'class_ids.txt'), 'w') as file: + file.write(str(self.class_ids) + '\n') return tf.convert_to_tensor(induvidual_masks) @@ -287,11 +363,54 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t features, labels = inputs - labels["individual_masks"] = self._check_induvidual_masks(labels, self._log_classes(labels)) - labels["contigious_mask"] = self._check_contigious_mask(labels) + features = tf.convert_to_tensor(np.load('/depot/davisjam/data/akshath/exps/resnet/raw/features.npy')) + for val in labels: + labels[val] = tf.convert_to_tensor(np.load(f'/depot/davisjam/data/akshath/exps/resnet/raw/{val}.npy')) + + # np.save('/depot/davisjam/data/akshath/exps/tf/resnet/raw/features.npy', tf.cast(features, np.float32)._numpy()) + # for lab in labels: + # np.save(f'/depot/davisjam/data/akshath/exps/tf/resnet/raw/{lab}.npy', tf.cast(labels[lab], np.float32)._numpy()) + + + # self.temp += 2 + # all_unique_ids = labels["unique_ids"]._numpy() + # for size in range(all_unique_ids.shape[0]): + # unique_ids = all_unique_ids[size, :] + # for class_id in unique_ids: + # if class_id in self.class_ids: + # self.class_ids[class_id] += 1 + # else: + # self.class_ids[class_id] = 1 + + # print(self.temp) + # with open(os.path.join(self.log_dir, 'class_ids.txt'), 'w') as file: + # file.write(str(self.class_ids) + '\n') + + # self._log_classes(labels) + # labels["individual_masks"] = self._check_induvidual_masks(labels, self._log_classes(labels)) + + # # for param in model.trainable_variables: + # # name = param.name.replace('/', '-') + # # np.save(f"/depot/davisjam/data/akshath/exps/tf/weights_biases/{name}.npy", param.numpy()) + + # # with open('/depot/davisjam/data/akshath/exps/tf/indu_masks/indu_masks.txt', 'w') as file: + # # file.write(str(labels) + '\n') + + + # # raise ValueError('Init') + + # # labels["individual_masks"] = self._check_induvidual_masks(labels, self._log_classes(labels)) + # # labels["contigious_mask"] = self._check_contigious_mask(labels) with tf.GradientTape() as tape: - outputs = model(features, training=True) + outputs, backbone_feature_maps_procesed = model(features, training=True) + # print(backbone_feature_maps_procesed.keys()) + + # for val in backbone_feature_maps_procesed: + # print(backbone_feature_maps_procesed[val]) + # print(backbone_feature_maps_procesed[val].numpy()) + # np.save(os.path.join('/depot/davisjam/data/akshath/exps/resnet/tf', 'backbone_feature_maps_procesed_' + str(val) + '.npy'), backbone_feature_maps_procesed[val].numpy()) + ########################################################## # FIXME : This loop must be used for auxilary outputs loss = 0.0 @@ -314,44 +433,83 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t ########################################################################## - # TODO : Add auxiallary losses total_loss, cls_loss, focal_loss, dice_loss = self.build_losses(output=outputs, labels=labels) scaled_loss = total_loss if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): total_loss = optimizer.get_scaled_loss(scaled_loss) - tvars = model.trainable_variables - grads = tape.gradient(scaled_loss,tvars) - - if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): - grads = optimizer.get_unscaled_gradients(grads) - optimizer.apply_gradients(list(zip(grads, tvars))) - if os.environ.get('PRINT_OUTPUTS') == 'True': - probs = tf.keras.activations.softmax(outputs["class_prob_predictions"], axis=-1) - pred_labels = tf.argmax(probs, axis=-1) - print("Target labels :", labels["unique_ids"]) - print("Output labels :", pred_labels) + print('Total loss : ', total_loss) + print('Cls loss : ', cls_loss) + print('Focal loss : ', focal_loss) + print('Dice loss : ', dice_loss) + raise ValueError('Stop1') + + # tvars = model.trainable_variables + # grads = tape.gradient(scaled_loss,tvars) + + # if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): + # grads = optimizer.get_unscaled_gradients(grads) + # optimizer.apply_gradients(list(zip(grads, tvars))) + + # if os.environ.get('PRINT_OUTPUTS') == 'True': + # probs = tf.keras.activations.softmax(outputs["class_prob_predictions"], axis=-1) + # pred_labels = tf.argmax(probs, axis=-1) + # print("Target labels :", labels["unique_ids"]) + # print("Output labels :", pred_labels) + + # temp = {} + # for grad, param in zip(grads, tvars): + # temp[param.name] = tf.norm(grad).numpy() + + # for param in temp: + # if param not in self.plot_collection: + # self.plot_collection[param] = [] + # else: + # self.plot_collection[param] += [temp[param]] + # self.plot_collection_labels[0] += [len(np.unique(pred_labels).tolist())] + + # with open(os.path.join(self.log_dir, 'checking_labels.txt'), 'a') as file: + # file.write(str(self.temp) + '\n') + # file.write(str(labels["unique_ids"].numpy()) + '\n') + # file.write(str(pred_labels.numpy())+ '\n') + # file.write(f"{total_loss}, {cls_loss}, {focal_loss}, {dice_loss}" + '\n') + + # file.write('-----------------------------------' + '\n') + + # if (sum(temp.values()) == 0) or (len(np.unique(pred_labels).tolist()) == 1 and np.unique(pred_labels).tolist()[0] == 0): + # with open('/depot/davisjam/data/akshath/exps/tf/editing_layers/numIters.txt', 'a') as file: + # file.write(str('numIters : ' + str(self.temp)) + '\n') + # with open('/depot/davisjam/data/akshath/exps/tf/vishal_plot/dict.txt', 'w') as file: + # file.write(str(self.plot_collection)) + # with open('/depot/davisjam/data/akshath/exps/tf/vishal_plot/dict_labels.txt', 'w') as file: + # file.write(str(self.plot_collection_labels)) + + # raise ValueError('Stop2') # # Multiply for logging. # # Since we expect the gradient replica sum to happen in the optimizer, # # the loss is scaled with global num_boxes and weights. - # # To have it more interpretable/comparable we scale it back when logging. - num_replicas_in_sync = tf.distribute.get_strategy().num_replicas_in_sync - total_loss *= num_replicas_in_sync - cls_loss *= num_replicas_in_sync - focal_loss *= num_replicas_in_sync - dice_loss *= num_replicas_in_sync + # # # To have it more interpretable/comparable we scale it back when logging. + # num_replicas_in_sync = tf.distribute.get_strategy().num_replicas_in_sync + # total_loss *= num_replicas_in_sync + # cls_loss *= num_replicas_in_sync + # focal_loss *= num_replicas_in_sync + # dice_loss *= num_replicas_in_sync + total_loss = 0 logs = {self.loss: total_loss} - all_losses = { - 'cls_loss': cls_loss, - 'focal_loss': focal_loss, - 'dice_loss': dice_loss,} + # total_loss = 0 + # focal_loss = 0 + # dice_loss = 0 + # all_losses = { + # 'cls_loss': cls_loss, + # 'focal_loss': focal_loss, + # 'dice_loss': dice_loss,} - if metrics: - for m in metrics: - m.update_state(all_losses[m.name]) + # if metrics: + # for m in metrics: + # m.update_state(all_losses[m.name]) return logs def _postprocess_outputs(self, outputs: Dict[str, Any], image_shapes): diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696795169.gilbreth-g000.rcac.purdue.edu.86093.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696795169.gilbreth-g000.rcac.purdue.edu.86093.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..a23927ab6fac130a257193832b176cdc995bc296 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3=SQKJZ?Hl@g@}|X6EU+mZj#ESQ#x{Q_lndv=<9L literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696795544.gilbreth-g000.rcac.purdue.edu.88080.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696795544.gilbreth-g000.rcac.purdue.edu.88080.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..797b42539e8e5b3c411869ef4b17b07625e077f7 GIT binary patch literal 40 qcmb1OfPlsI-b$Q6=CeZ{Hyx#TlZp~E^YmQHQu9izjONC%E(HL!Obagn literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696800260.gilbreth-g000.rcac.purdue.edu.105971.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696800260.gilbreth-g000.rcac.purdue.edu.105971.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..ad02ab552acd14b7d511eb58596751d53c079b19 GIT binary patch literal 40 qcmb1OfPlsI-b$Q6X5(>>n~qYvNkxg7d3vs8sd*()@v$+bm literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696801211.gilbreth-g000.rcac.purdue.edu.109453.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696801211.gilbreth-g000.rcac.purdue.edu.109453.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..8f8c0d541b5685be07bd16a47ed569084db24d52 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3NT9%quVr68&dBX?*#9j+_ literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696802244.gilbreth-g000.rcac.purdue.edu.113560.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696802244.gilbreth-g000.rcac.purdue.edu.113560.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..51d8484eb72f9bfdc5829085e75a66aef361de18 GIT binary patch literal 40 pcmb1OfPlsI-b$Q6X5mSXn~qYvNkxg7d3vs8sd*(NT9%quVr8`NnfiVJ%C8L8 literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696803587.gilbreth-g000.rcac.purdue.edu.118187.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696803587.gilbreth-g000.rcac.purdue.edu.118187.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..378502928be4149ee0ccec9228172e420d4b2d93 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3NT9%quVrBI7)YF>)$&3w| literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train_on_gpu.sh b/models/official/projects/maskformer/train_on_gpu.sh index 6f494c67..fd1b22da 100755 --- a/models/official/projects/maskformer/train_on_gpu.sh +++ b/models/official/projects/maskformer/train_on_gpu.sh @@ -1,33 +1,30 @@ #!/bin/bash -# module load gcc/9.3.0 -# cd /depot/qqiu/data/vishal/tf-maskformer/ -# conda activate /depot/qqiu/data/vishal/envs/tmaskformer/ -# module load anaconda/2020.11-py38 -# module load cuda/11.7.0 cudnn/cuda-11.7_8.6 gcc/6.3.0 + train_bsize=2 eval_bsize=1 -export PYTHONPATH=$PYTHONPATH:/depot/qqiu/data/vishal/tf-maskformer/models +export PYTHONPATH=/depot/davisjam/data/akshath/MaskFormer_tf/tf-maskformer/models export MODEL_DIR="./" -export RESNET_CKPT="/depot/davisjam/data/vishal/pretrained_ckpts/tfmg_resnet50/ckpt-62400" export TFRECORDS_DIR="/depot/davisjam/data/vishal/datasets/coco/tfrecords" export TRAIN_BATCH_SIZE=$train_bsize export EVAL_BATCH_SIZE=$eval_bsize -export BASE_LR=0.00005 -export NO_OBJ_CLS_WEIGHT=0.1 +export BASE_LR=0.0001 +export NO_OBJ_CLS_WEIGHT=0.01 export IMG_SIZE=640 export PRINT_OUTPUTS=True +# Akshath export ON_GPU=True -export MODE="eval" -export USE_BFLOAT16_DATA=True -export STEPS_PER_EPOCH=10 +export MODE="train" +export LOG_DIR="/depot/davisjam/data/akshath/exps/tf/resnet" +export RUN_NUMBER=2 +export USE_BFLOAT16_DATA=False +# export STEPS_PER_EPOCH=10 export NUM_EPOCH=1 -export VAL_STEPS=20 +# export VAL_STEPS=20 export OVERRIDES="runtime.distribution_strategy=one_device,runtime.num_gpus=1,runtime.mixed_precision_dtype=float32,\ task.train_data.global_batch_size=$train_bsize,\ -task.model.which_pixel_decoder=transformer_fpn,\ -task.init_checkpoint=$RESNET_CKPT" -python3 models/official/projects/maskformer/train.py \ +task.model.which_pixel_decoder=transformer_fpn" +python3 train.py \ --experiment maskformer_coco_panoptic \ --mode $MODE \ --model_dir $MODEL_DIR \ - --params_override=$OVERRIDES + --params_override=$OVERRIDES \ No newline at end of file From 81b08120d2b29622cc87348fc45b2f96983b1165 Mon Sep 17 00:00:00 2001 From: AkshathRaghav Date: Thu, 12 Oct 2023 17:48:08 -0400 Subject: [PATCH 4/8] Storing files Signed-off-by: AkshathRaghav --- .../maskformer_losses.cpython-39.pyc | Bin 7982 -> 7973 bytes .../maskformer/losses/maskformer_losses.py | 3 +- .../__pycache__/maskformer.cpython-39.pyc | Bin 4942 -> 4938 bytes .../maskformer/modeling/maskformer.py | 3 +- .../official/projects/maskformer/params.yaml | 2 +- .../panoptic_maskformer.cpython-39.pyc | Bin 15950 -> 16386 bytes .../maskformer/tasks/panoptic_maskformer.py | 74 +++++++++--------- ...0.gilbreth-g007.rcac.purdue.edu.96221.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g005.rcac.purdue.edu.122426.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g005.rcac.purdue.edu.128399.0.v2 | Bin 0 -> 40 bytes ....gilbreth-g005.rcac.purdue.edu.129094.0.v2 | Bin 0 -> 40 bytes ...20.gilbreth-g005.rcac.purdue.edu.3453.0.v2 | Bin 0 -> 40 bytes ...4.gilbreth-g005.rcac.purdue.edu.17701.0.v2 | Bin 0 -> 40 bytes ...8.gilbreth-k019.rcac.purdue.edu.98368.0.v2 | Bin 0 -> 40 bytes ...5.gilbreth-k019.rcac.purdue.edu.99870.0.v2 | Bin 0 -> 40 bytes ....gilbreth-k019.rcac.purdue.edu.118639.0.v2 | Bin 0 -> 40 bytes .../projects/maskformer/train_on_gpu.sh | 6 +- 17 files changed, 42 insertions(+), 46 deletions(-) create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696871050.gilbreth-g007.rcac.purdue.edu.96221.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696907351.gilbreth-g005.rcac.purdue.edu.122426.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696907805.gilbreth-g005.rcac.purdue.edu.128399.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696907918.gilbreth-g005.rcac.purdue.edu.129094.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696909420.gilbreth-g005.rcac.purdue.edu.3453.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696913554.gilbreth-g005.rcac.purdue.edu.17701.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696913908.gilbreth-k019.rcac.purdue.edu.98368.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696914015.gilbreth-k019.rcac.purdue.edu.99870.0.v2 create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1696915048.gilbreth-k019.rcac.purdue.edu.118639.0.v2 diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index 9f15b9d666a5c69e2205be5bfd02e629da26762f..706705c21a0c15b786ca6c2a2ca17eac4b7ec2e5 100644 GIT binary patch delta 548 zcmZ2yx73b1k(ZZ?0SL5CsBGju!NJI~`3i?WBcsD+6|U)wjLw_)aPMGb^q*YHo55%| z`5v#88BYpx3QG%P6mtq|3R??96iW(w3I~v8P2o)80@7?L+`$Z*yti0<@{5a~gN$Zi z_+URdoNqm&$7CjcB@rQ@KoOV_2C;a6M9gMe{tHZuVUziUdKG*?qTV3F7eqJ%iCdg` z`6cnGg{6r(MShca3r&y%$wvv6q?g3!CKhMM7o-;DmX@TZ6oEDSPR#7>qM z*JDhW>?bbH=r=h{+>0$0BTxZJx z3FJ4#f^Z-fdV(K#5d{&Ai6&xnqc<*@jThW}I6JG? z*<5#=2(PfvQcD%x#^O2~!A3+7wy?1f3qdPOowug}r})i({%_u!H#1L{o-Y}WX=W5T z{N3{}jkh{Uh9C6?A=R*wc}U2~aMO5ANF4%mg&c>^=FzIjQcPVVc9LmqYE7|IOlN61 zt1QC|IcqH2QWkPisy6cduUJ}9epLU8#S>7^y@15DRc=V1=O-wj%1U&?#p(A6(groZ zvFkj#HAEe8N+L=RM}oSy1IObHc$I%(Vcgy>ZVEbZ{9APF@V=roH}9KJhvh*g*XMSCLM2+I2jS(r@r#?l3t6hE*{pE%C?j Y-70GQv`n?3ZLO0>@WrYo56#T|0dF~;q5uE@ diff --git a/models/official/projects/maskformer/losses/maskformer_losses.py b/models/official/projects/maskformer/losses/maskformer_losses.py index 1c1d188b..3dc470b6 100644 --- a/models/official/projects/maskformer/losses/maskformer_losses.py +++ b/models/official/projects/maskformer/losses/maskformer_losses.py @@ -54,6 +54,7 @@ def batch(self, y_true, y_pred): loss = tf.einsum("bnc,bmc->bnm",focal_pos,y_true) + tf.einsum( "bnc,bmc->bnm", focal_neg,(1 - y_true) ) + return loss/hw @@ -88,7 +89,7 @@ def batch(self, y_true, y_pred): return loss class Loss: - def __init__(self, num_classes, matcher, eos_coef, cost_class = 1.0, cost_focal = 20.0, cost_dice = 1.0, ignore_label =0): + def __init__(self, num_classes, matcher, eos_coef, cost_class = 1.0, cost_focal = 1.0, cost_dice = 1.0, ignore_label =0): self.num_classes = num_classes self.matcher = matcher diff --git a/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc index 0a027cedc482f5a731c6f018b46516b494888b6a..5f44d8d78f6f55fbcf22a0e5e702c9c3873f9569 100644 GIT binary patch delta 68 zcmX@7c1n#ek(ZZ?0SJl@sigiE-N@I#$Cxv@pD%Y3|6InX$@BQz8JQ-l3H)a)oUA4| Wfw6q^cEKP)qwf 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 diff --git a/models/official/projects/maskformer/tasks/panoptic_maskformer.py b/models/official/projects/maskformer/tasks/panoptic_maskformer.py index 50243713..5567de84 100644 --- a/models/official/projects/maskformer/tasks/panoptic_maskformer.py +++ b/models/official/projects/maskformer/tasks/panoptic_maskformer.py @@ -49,7 +49,7 @@ def build_model(self): self.log_dir = os.environ.get('LOG_DIR') self.run_number = os.environ.get('RUN_NUMBER') - if self.log_dir is None: + if self.log_dir: try: os.mkdir(self.log_dir) except: @@ -363,9 +363,9 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t features, labels = inputs - features = tf.convert_to_tensor(np.load('/depot/davisjam/data/akshath/exps/resnet/raw/features.npy')) - for val in labels: - labels[val] = tf.convert_to_tensor(np.load(f'/depot/davisjam/data/akshath/exps/resnet/raw/{val}.npy')) + # features = tf.convert_to_tensor(np.load('/depot/davisjam/data/akshath/exps/resnet/raw/features.npy')) + # for val in labels: + # labels[val] = tf.convert_to_tensor(np.load(f'/depot/davisjam/data/akshath/exps/resnet/raw/{val}.npy')) # np.save('/depot/davisjam/data/akshath/exps/tf/resnet/raw/features.npy', tf.cast(features, np.float32)._numpy()) # for lab in labels: @@ -403,7 +403,7 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t # # labels["contigious_mask"] = self._check_contigious_mask(labels) with tf.GradientTape() as tape: - outputs, backbone_feature_maps_procesed = model(features, training=True) + outputs = model(features, training=True) # print(backbone_feature_maps_procesed.keys()) # for val in backbone_feature_maps_procesed: @@ -435,6 +435,7 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t total_loss, cls_loss, focal_loss, dice_loss = self.build_losses(output=outputs, labels=labels) scaled_loss = total_loss + if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): total_loss = optimizer.get_scaled_loss(scaled_loss) @@ -442,20 +443,19 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t print('Cls loss : ', cls_loss) print('Focal loss : ', focal_loss) print('Dice loss : ', dice_loss) - raise ValueError('Stop1') - # tvars = model.trainable_variables - # grads = tape.gradient(scaled_loss,tvars) + tvars = model.trainable_variables + grads = tape.gradient(scaled_loss,tvars) - # if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): - # grads = optimizer.get_unscaled_gradients(grads) - # optimizer.apply_gradients(list(zip(grads, tvars))) + if isinstance(optimizer, tf.keras.mixed_precision.LossScaleOptimizer): + grads = optimizer.get_unscaled_gradients(grads) + optimizer.apply_gradients(list(zip(grads, tvars))) - # if os.environ.get('PRINT_OUTPUTS') == 'True': - # probs = tf.keras.activations.softmax(outputs["class_prob_predictions"], axis=-1) - # pred_labels = tf.argmax(probs, axis=-1) - # print("Target labels :", labels["unique_ids"]) - # print("Output labels :", pred_labels) + if os.environ.get('PRINT_OUTPUTS') == 'True': + probs = tf.keras.activations.softmax(outputs["class_prob_predictions"], axis=-1) + pred_labels = tf.argmax(probs, axis=-1) + print("Target labels :", labels["unique_ids"]) + print("Output labels :", pred_labels) # temp = {} # for grad, param in zip(grads, tvars): @@ -468,13 +468,13 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t # self.plot_collection[param] += [temp[param]] # self.plot_collection_labels[0] += [len(np.unique(pred_labels).tolist())] - # with open(os.path.join(self.log_dir, 'checking_labels.txt'), 'a') as file: - # file.write(str(self.temp) + '\n') - # file.write(str(labels["unique_ids"].numpy()) + '\n') - # file.write(str(pred_labels.numpy())+ '\n') - # file.write(f"{total_loss}, {cls_loss}, {focal_loss}, {dice_loss}" + '\n') - - # file.write('-----------------------------------' + '\n') + self.temp += int(os.environ.get('TRAIN_BATCH_SIZE')) + with open(os.path.join(self.log_dir, 'checking_labels.txt'), 'a') as file: + file.write(str(self.temp) + '\n') + file.write(str(labels["unique_ids"].numpy()) + '\n') + file.write(str(pred_labels.numpy())+ '\n') + file.write(f"{total_loss}, {cls_loss}, {focal_loss}, {dice_loss}" + '\n') + file.write('-----------------------------------' + '\n') # if (sum(temp.values()) == 0) or (len(np.unique(pred_labels).tolist()) == 1 and np.unique(pred_labels).tolist()[0] == 0): # with open('/depot/davisjam/data/akshath/exps/tf/editing_layers/numIters.txt', 'a') as file: @@ -490,26 +490,22 @@ def train_step(self, inputs: Tuple[Any, Any],model: tf.keras.Model, optimizer: t # # Since we expect the gradient replica sum to happen in the optimizer, # # the loss is scaled with global num_boxes and weights. # # # To have it more interpretable/comparable we scale it back when logging. - # num_replicas_in_sync = tf.distribute.get_strategy().num_replicas_in_sync - # total_loss *= num_replicas_in_sync - # cls_loss *= num_replicas_in_sync - # focal_loss *= num_replicas_in_sync - # dice_loss *= num_replicas_in_sync + num_replicas_in_sync = tf.distribute.get_strategy().num_replicas_in_sync + total_loss *= num_replicas_in_sync + cls_loss *= num_replicas_in_sync + focal_loss *= num_replicas_in_sync + dice_loss *= num_replicas_in_sync - total_loss = 0 logs = {self.loss: total_loss} - # total_loss = 0 - # focal_loss = 0 - # dice_loss = 0 - # all_losses = { - # 'cls_loss': cls_loss, - # 'focal_loss': focal_loss, - # 'dice_loss': dice_loss,} + all_losses = { + 'cls_loss': cls_loss, + 'focal_loss': focal_loss, + 'dice_loss': dice_loss,} - # if metrics: - # for m in metrics: - # m.update_state(all_losses[m.name]) + if metrics: + for m in metrics: + m.update_state(all_losses[m.name]) return logs def _postprocess_outputs(self, outputs: Dict[str, Any], image_shapes): diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696871050.gilbreth-g007.rcac.purdue.edu.96221.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696871050.gilbreth-g007.rcac.purdue.edu.96221.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..43fa6c66e5f45220ec2302c4523daf25c74aa5f1 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3=NBTJa0Nm@g@}|X6EU+mZj#ESQ#0~-f#o}srw3f literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696907351.gilbreth-g005.rcac.purdue.edu.122426.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696907351.gilbreth-g005.rcac.purdue.edu.122426.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..2015b0fad38cc62a81ad3daa74278f09b26ac6f1 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3Myrzr~W literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696907918.gilbreth-g005.rcac.purdue.edu.129094.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696907918.gilbreth-g005.rcac.purdue.edu.129094.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..a6990459d1e21148e5d4727d38e28924940ad687 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3=NA7Ja0Nm@g@}|X6EU+mZj#ESQ#-^U!Ds9t@jHe literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696909420.gilbreth-g005.rcac.purdue.edu.3453.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696909420.gilbreth-g005.rcac.purdue.edu.3453.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..f5cf9d4fe3ce6357929c57e7f187939c46d5ee5d GIT binary patch literal 40 pcmb1OfPlsI-b$Q6rnHggO-Cu-q@u*kJU!R4)VvZaqsg`YZvmEj3VZ+n literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696913554.gilbreth-g005.rcac.purdue.edu.17701.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696913554.gilbreth-g005.rcac.purdue.edu.17701.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..268bcb99c7b2e5173097e9adf5355e2af8c28419 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3=Jw~o;Mw(c$10}GxPLZ%Tn`7tc>{ot6l;Cqc#e{ literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696913908.gilbreth-k019.rcac.purdue.edu.98368.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696913908.gilbreth-k019.rcac.purdue.edu.98368.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..6b2bb16774fc9bf0903bffce82793c86a356a5a7 GIT binary patch literal 40 pcmb1OfPlsI-b$Q6X04g$O-Cu-q@u*kJU!R4)VvZaBM0W#1pu8K3Dy7r literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1696914015.gilbreth-k019.rcac.purdue.edu.99870.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1696914015.gilbreth-k019.rcac.purdue.edu.99870.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..a1fc99c5cbd8419007f4368120bb7dd240663122 GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3 Date: Thu, 9 Nov 2023 06:09:28 -0500 Subject: [PATCH 5/8] storing Signed-off-by: AkshathRaghav --- .../__pycache__/optimization.cpython-39.pyc | Bin 4340 -> 4340 bytes .../__pycache__/inference.cpython-39.pyc | Bin 2967 -> 2967 bytes .../maskformer_losses.cpython-39.pyc | Bin 7973 -> 7973 bytes .../__pycache__/maskformer.cpython-39.pyc | Bin 4938 -> 4938 bytes .../detr_transformer.cpython-39.pyc | Bin 2480 -> 2480 bytes .../__pycache__/pixel_decoder.cpython-39.pyc | Bin 4095 -> 4095 bytes .../transformer_decoder.cpython-39.pyc | Bin 2853 -> 2853 bytes .../transformer_pixel_decoder.cpython-39.pyc | Bin 5238 -> 5238 bytes .../__pycache__/nn_block.cpython-39.pyc | Bin 2499 -> 2499 bytes .../panoptic_maskformer.cpython-39.pyc | Bin 16386 -> 16386 bytes ....gilbreth-k012.rcac.purdue.edu.121017.0.v2 | Bin 0 -> 40 bytes .../projects/maskformer/train_on_cpu.sh | 4 ++-- .../projects/maskformer/train_on_gpu.sh | 2 +- 13 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1699527985.gilbreth-k012.rcac.purdue.edu.121017.0.v2 diff --git a/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc b/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc index 42450f7c30284fc6cf8c87ddab689c8239e7bbac..787ff70484e5b1d1bc8d8c9506c74c6abda4483d 100644 GIT binary patch delta 20 acmeyO_(hRBk(ZZ?0SI>Q@!81zQUCxz?glde delta 20 acmeyO_(hRBk(ZZ?0SJCBVcN+3QUCxzo(2y9 diff --git a/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc index a03ac3f12e21412767c3cfbc30fcfc6e0f0cfff7..a9a90cc1f7921bd19e8d6c34b8fe38571fda94b5 100644 GIT binary patch delta 20 acmbO(K3$wUk(ZZ?0SI>Q@!81T!wmp1`2_<2 delta 20 acmbO(K3$wUk(ZZ?0SFo&OK#-u;RXONP6WLG diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index 706705c21a0c15b786ca6c2a2ca17eac4b7ec2e5..030131584ac7093507cf9c3a4b5b478170275c94 100644 GIT binary patch delta 20 acmZ2#x73b1k(ZZ?0SI>Q@!7~NB@X~MxdjgZ delta 20 acmZ2#x73b1k(ZZ?0SL5CsBGkxk_P}YLIh#} diff --git a/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc index 5f44d8d78f6f55fbcf22a0e5e702c9c3873f9569..9b1061271a90a5e9baadc1e45d072ea2c12c748c 100644 GIT binary patch delta 20 acmX@5c1n#qk(ZZ?0SI>Q@!802FAM-W6$L^7 delta 20 acmX@5c1n#qk(ZZ?0SJl@schu77X|<~c?8%1 diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc index 68919f4e6c6f230f67a69bc3bbefd66597d45468..cb1d23dde13ee003b025b94cc3c460d00f0102ec 100644 GIT binary patch delta 20 acmdlWyg`^dk(ZZ?0SI>Q@!80|loJ3nPX$B( delta 20 acmdlWyg`^dk(ZZ?0SIQh%53Cb$_W53wFG?t diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc index d416f44bfc0dcb0a953654b63b54e8bd4acf06ee..f11bfee7c9b60a31e666b26017066b0644767ca0 100644 GIT binary patch delta 20 acmew_|6iUvk(ZZ?0SI>Q@!81zg&zPyT?S78 delta 20 acmew_|6iUvk(ZZ?0SJCBVcN+3g&zPy4F)R! diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc index 6afe399f20652e7dae42748722b3b8d754eaa3fa..486a0f0a8cb53a36e909d58831f276cdf3224074 100644 GIT binary patch delta 20 acmZ1~wp5Hek(ZZ?0SI>Q@!7~N#SH*51q7=A delta 20 acmZ1~wp5Hek(ZZ?0SFviWj1n4aRUGQ@!80oEdl^RJ_XAF delta 20 acmeyS@lAs}k(ZZ?0SJCBVcN)@Edl^Q?ggg+ diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc index 07fdd7ad2b7d53ef794bfdee4c8f1bb8413746d0..97b7573c7dc02beb100552b36b592ff4d1fccea6 100644 GIT binary patch delta 20 acmX>sd{~$}k(ZZ?0SI>Q@!80|gA)KZM+JQV delta 20 acmX>sd{~$}k(ZZ?0SK0w$ZzD{!3h8|oCLA} diff --git a/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc b/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc index ec8c7c407952272da4b1360ebdbe3c6c1e3302a3..ecba1ebd28f3c3156702d603b19f330528ba7e11 100644 GIT binary patch delta 22 ccmZo_U~Fn&306ppj+5i9m diff --git a/models/official/projects/maskformer/train/events.out.tfevents.1699527985.gilbreth-k012.rcac.purdue.edu.121017.0.v2 b/models/official/projects/maskformer/train/events.out.tfevents.1699527985.gilbreth-k012.rcac.purdue.edu.121017.0.v2 new file mode 100644 index 0000000000000000000000000000000000000000..e3664331839e5081fa31c1ecae73e6553195d4ec GIT binary patch literal 40 rcmb1OfPlsI-b$Pd3=Tf}!8aYHc$10}GxPLZ%Tn`7tc;iv%5DJwpNa}v literal 0 HcmV?d00001 diff --git a/models/official/projects/maskformer/train_on_cpu.sh b/models/official/projects/maskformer/train_on_cpu.sh index 0f406729..b4f46db8 100755 --- a/models/official/projects/maskformer/train_on_cpu.sh +++ b/models/official/projects/maskformer/train_on_cpu.sh @@ -1,7 +1,7 @@ #!/bin/bash train_bsize=1 eval_bsize=1 -export PYTHONPATH=$PYTHONPATH:~/tf-maskformer/models +export PYTHONPATH=$PYTHONPATH:/depot/davisjam/data/akshath/MaskFormer_tf/tf-maskformer/models export RESNET_CKPT="gs://cam2-models/maskformer_vishal_exps/resnet50_pretrained/tfmg/ckpt-62400" export MODEL_DIR="gs://cam2-models/maskformer_vishal_exps/EXP01_CPU" export TFRECORDS_DIR="gs://cam2-datasets/coco_panoptic/tfrecords" @@ -15,7 +15,7 @@ export OVERRIDES="runtime.distribution_strategy=one_device,runtime.mixed_precisi task.train_data.global_batch_size=$TRAIN_BATCH_SIZE,\ task.model.which_pixel_decoder=transformer_fpn,\ task.init_checkpoint=$RESNET_CKPT" -python3 models/official/projects/maskformer/train.py \ +python3 train.py \ --experiment maskformer_coco_panoptic \ --mode train \ --model_dir $MODEL_DIR \ diff --git a/models/official/projects/maskformer/train_on_gpu.sh b/models/official/projects/maskformer/train_on_gpu.sh index 92a59244..5cf44424 100755 --- a/models/official/projects/maskformer/train_on_gpu.sh +++ b/models/official/projects/maskformer/train_on_gpu.sh @@ -27,4 +27,4 @@ python3 train.py \ --experiment maskformer_coco_panoptic \ --mode $MODE \ --model_dir $MODEL_DIR \ - --params_override=$OVERRIDES \ No newline at end of file + --params_override=$OVERRIDES From bd5caf24900a33c73c07eb1f4b54448dded2874b Mon Sep 17 00:00:00 2001 From: AkshathRaghav Date: Thu, 9 Nov 2023 16:35:08 -0500 Subject: [PATCH 6/8] Storing Signed-off-by: AkshathRaghav --- .../__pycache__/optimization.cpython-39.pyc | Bin 4340 -> 4340 bytes .../official/projects/maskformer/eval_cpu.sh | 8 ++++---- .../official/projects/maskformer/eval_gpu.sh | 2 +- .../__pycache__/inference.cpython-39.pyc | Bin 2967 -> 2967 bytes .../maskformer_losses.cpython-39.pyc | Bin 7973 -> 7973 bytes .../__pycache__/maskformer.cpython-39.pyc | Bin 4938 -> 4938 bytes .../detr_transformer.cpython-39.pyc | Bin 2480 -> 2480 bytes .../__pycache__/pixel_decoder.cpython-39.pyc | Bin 4095 -> 4095 bytes .../transformer_decoder.cpython-39.pyc | Bin 2853 -> 2853 bytes .../transformer_pixel_decoder.cpython-39.pyc | Bin 5238 -> 5238 bytes .../__pycache__/nn_block.cpython-39.pyc | Bin 2499 -> 2499 bytes .../panoptic_maskformer.cpython-39.pyc | Bin 16386 -> 16386 bytes 12 files changed, 5 insertions(+), 5 deletions(-) diff --git a/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc b/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc index 787ff70484e5b1d1bc8d8c9506c74c6abda4483d..c7a31f44185151df79d3d123c7df155b4b3fdb23 100644 GIT binary patch delta 20 acmeyO_(hRBk(ZZ?0SKaed^d8x6aWA_tOa8L delta 20 acmeyO_(hRBk(ZZ?0SI>Q@!81zQUCxz?glde diff --git a/models/official/projects/maskformer/eval_cpu.sh b/models/official/projects/maskformer/eval_cpu.sh index 67bf03ed..ff09a729 100644 --- a/models/official/projects/maskformer/eval_cpu.sh +++ b/models/official/projects/maskformer/eval_cpu.sh @@ -1,9 +1,9 @@ #!/bin/bash train_bsize=1 eval_bsize=1 -export PYTHONPATH=$PYTHONPATH:~/tf-maskformer/models -export MODEL_DIR="gs://cam2-models/maskformer_vishal_exps/EXP20_v8_eval" -export MASKFORMER_CKPT="gs://cam2-models/maskformer_vishal_exps/EXP20_v8/ckpt-18480" +export PYTHONPATH=$PYTHONPATH:/depot/davisjam/data/akshath/MaskFormer_tf/tf-maskformer/models +export MODEL_DIR="gs://cam2-models/maskformer_vishal_exps/EXP26_v8_eval" +export MASKFORMER_CKPT="gs://cam2-models/maskformer_vishal_exps/EXP26_v8/ckpt-482328" export RESNET_CKPT="gs://cam2-models/maskformer_vishal_exps/resnet50_pretrained/tfmg/ckpt-62400" export TFRECORDS_DIR="gs://cam2-datasets/coco_panoptic/tfrecords" export TRAIN_BATCH_SIZE=$train_bsize @@ -16,7 +16,7 @@ export OVERRIDES="runtime.distribution_strategy=one_device,runtime.mixed_precisi task.validation_data.global_batch_size=$EVAL_BATCH_SIZE,task.model.which_pixel_decoder=transformer_fpn,\ task.init_checkpoint_modules=all,\ task.init_checkpoint=$MASKFORMER_CKPT" -python3 models/official/projects/maskformer/train.py \ +python3 train.py \ --experiment maskformer_coco_panoptic \ --mode eval \ --model_dir $MODEL_DIR \ diff --git a/models/official/projects/maskformer/eval_gpu.sh b/models/official/projects/maskformer/eval_gpu.sh index 3def5bf4..dbe3d662 100755 --- a/models/official/projects/maskformer/eval_gpu.sh +++ b/models/official/projects/maskformer/eval_gpu.sh @@ -16,7 +16,7 @@ task.validation_data.global_batch_size=$EVAL_BATCH_SIZE,\ task.model.which_pixel_decoder=transformer_fpn,\ task.init_checkpoint_modules=all,\ task.init_checkpoint=$MASKFORMER_CKPT" -python3 models/official/projects/maskformer/train.py \ +python3 train.py \ --experiment maskformer_coco_panoptic \ --mode eval \ --model_dir $MODEL_DIR \ diff --git a/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc index a9a90cc1f7921bd19e8d6c34b8fe38571fda94b5..62c9ac0549eeeefaf06e3f3e49fb1cd6d548726b 100644 GIT binary patch delta 20 acmbO(K3$wUk(ZZ?0SF>}d^d9Ua037Q@!81T!wmp1`2_<2 diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index 030131584ac7093507cf9c3a4b5b478170275c94..52942ec286e7b5ac23874399dc80571515cab824 100644 GIT binary patch delta 20 acmZ2#x73b1k(ZZ?0SF>}d^d7S$pZi~a0EU8 delta 20 acmZ2#x73b1k(ZZ?0SI>Q@!7~NB@X~MxdjgZ diff --git a/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc index 9b1061271a90a5e9baadc1e45d072ea2c12c748c..9dda6fcec923d0a465f9cfd168ab8e7e142e06a4 100644 GIT binary patch delta 20 acmX@5c1n#qk(ZZ?0SKaed^d923j+W&(*$w= delta 20 acmX@5c1n#qk(ZZ?0SI>Q@!802FAM-W6$L^7 diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc index cb1d23dde13ee003b025b94cc3c460d00f0102ec..7947e8f42744f889f9bb157015604451020bf82f 100644 GIT binary patch delta 20 acmdlWyg`^dk(ZZ?0SF>}d^d70Q@!80|loJ3nPX$B( diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc index f11bfee7c9b60a31e666b26017066b0644767ca0..c809aef476e6afbe78a395eaabaaca7989be6105 100644 GIT binary patch delta 20 acmew_|6iUvk(ZZ?0SF>}d^d7`;RgUc6a{_& delta 20 acmew_|6iUvk(ZZ?0SI>Q@!81zg&zPyT?S78 diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc index 486a0f0a8cb53a36e909d58831f276cdf3224074..d05c836892ee63182fd0a21a77f82ef1f2567032 100644 GIT binary patch delta 20 acmZ1~wp5Hek(ZZ?0SF>}d^d7SaRUG>yaU<* delta 20 acmZ1~wp5Hek(ZZ?0SI>Q@!7~N#SH*51q7=A diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc index d157ca7155658b533e2befa9ba5cbf24493bc874..a1696c8f59c8fa956c9a129f8adda93dc21b833a 100644 GIT binary patch delta 20 acmeyS@lAs}k(ZZ?0SF>}d^d7uivR#S^#u9= delta 20 acmeyS@lAs}k(ZZ?0SI>Q@!80oEdl^RJ_XAF diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc index 97b7573c7dc02beb100552b36b592ff4d1fccea6..68d564bfc2809ade4ba5d55068a4e93f7a6683e6 100644 GIT binary patch delta 20 acmX>sd{~$}k(ZZ?0SF>}d^d9M-~<3M{sgQ5 delta 20 acmX>sd{~$}k(ZZ?0SI>Q@!80|gA)KZM+JQV diff --git a/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc b/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc index ecba1ebd28f3c3156702d603b19f330528ba7e11..b011dbd3583d41cf7d3a3168518f95a7b8210195 100644 GIT binary patch delta 22 bcmZo_U~Fn& Date: Thu, 9 Nov 2023 17:47:02 -0500 Subject: [PATCH 7/8] Storing Signed-off-by: AkshathRaghav --- .../__pycache__/optimization.cpython-39.pyc | Bin 4340 -> 4340 bytes .../__pycache__/inference.cpython-39.pyc | Bin 2967 -> 2967 bytes .../maskformer_losses.cpython-39.pyc | Bin 7973 -> 7973 bytes .../__pycache__/maskformer.cpython-39.pyc | Bin 4938 -> 4938 bytes .../detr_transformer.cpython-39.pyc | Bin 2480 -> 2480 bytes .../__pycache__/pixel_decoder.cpython-39.pyc | Bin 4095 -> 4095 bytes .../transformer_decoder.cpython-39.pyc | Bin 2853 -> 2853 bytes .../transformer_pixel_decoder.cpython-39.pyc | Bin 5238 -> 5238 bytes .../__pycache__/nn_block.cpython-39.pyc | Bin 2499 -> 2499 bytes .../panoptic_maskformer.cpython-39.pyc | Bin 16386 -> 16386 bytes ...5.gilbreth-fe00.rcac.purdue.edu.57387.0.v2 | Bin 0 -> 40 bytes 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 models/official/projects/maskformer/train/events.out.tfevents.1699567985.gilbreth-fe00.rcac.purdue.edu.57387.0.v2 diff --git a/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc b/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc index c7a31f44185151df79d3d123c7df155b4b3fdb23..beece01401d18e6ee2e2ce10b04df036bd562892 100644 GIT binary patch delta 19 ZcmeyO_(hQ`k(ZZ?0SN3OH*&oa001^q1qJ{B delta 19 ZcmeyO_(hQ`k(ZZ?0SKaeHgdfZ001_+1r-1Q diff --git a/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc index 62c9ac0549eeeefaf06e3f3e49fb1cd6d548726b..b06cb74d40622b3625c631c8a62fdd3ed0ba045e 100644 GIT binary patch delta 19 ZcmbO(K3$wEk(ZZ?0SIg(H*)oI0{|x`1JwWk delta 19 ZcmbO(K3$wEk(ZZ?0SF>}HgffH0{|zD1LObz diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index 52942ec286e7b5ac23874399dc80571515cab824..ec9772549477c1153004ff6ec94473493d548a2a 100644 GIT binary patch delta 19 ZcmZ2#x73a+k(ZZ?0SIg(H*!hK0{|_21K|Jw delta 19 ZcmZ2#x73a+k(ZZ?0SF>}HgZYJ0{|`K1MmO< diff --git a/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc index 9dda6fcec923d0a465f9cfd168ab8e7e142e06a4..42dd785c401cf26f37050aa6cbd3b59053b856d9 100644 GIT binary patch delta 19 ZcmX@5c1n#ak(ZZ?0SN3OH*z@$0{}0?1Qh@P delta 19 ZcmX@5c1n#ak(ZZ?0SKaeHgY)#0{}291S9|e diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc index 7947e8f42744f889f9bb157015604451020bf82f..2ac75c3a372ec4f4fe5652125a0652bf0e238eac 100644 GIT binary patch delta 19 ZcmdlWyg`^Nk(ZZ?0SN3OH*ziG1OO^n1Q!4R delta 19 ZcmdlWyg`^Nk(ZZ?0SF>}HgYZF1OO_z1SJ3f diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/pixel_decoder.cpython-39.pyc index c809aef476e6afbe78a395eaabaaca7989be6105..c39ea97c96e31ba2259dc9a88c3fc7264c9f49e2 100644 GIT binary patch delta 19 Zcmew_|6iUfk(ZZ?0SLAQZshvP4*)t?1(E;& delta 19 Zcmew_|6iUfk(ZZ?0SF>}HgbLC2LLz`1uy^r diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc index d05c836892ee63182fd0a21a77f82ef1f2567032..0799b7cc661eeb3a34c4dce2a7819763c4f31a3f 100644 GIT binary patch delta 19 ZcmZ1~wp5HOk(ZZ?0SN3OH*!gH0{|!<1AYJi delta 19 ZcmZ1~wp5HOk(ZZ?0SF>}HgZXG0{|$01B?Iw diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc index a1696c8f59c8fa956c9a129f8adda93dc21b833a..0fdea8a7952e53b3044d9f3e857b98ce5e99e9dd 100644 GIT binary patch delta 19 ZcmeyS@lAs(k(ZZ?0SN3OH*)2O001_T1fBo@ delta 19 ZcmeyS@lAs(k(ZZ?0SF>}Hge^N001`f1gro6 diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc index 68d564bfc2809ade4ba5d55068a4e93f7a6683e6..9688b4f838152dabfaceef7642ba5e37522f8951 100644 GIT binary patch delta 19 ZcmX>sd{~$(k(ZZ?0SN3OH*)Rd1OP261W*6~ delta 19 ZcmX>sd{~$(k(ZZ?0SF>}HgfIc1OP3I1YQ6D diff --git a/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc b/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc index b011dbd3583d41cf7d3a3168518f95a7b8210195..602c71854854f8bace1a6b2cdce4110abbbfb48b 100644 GIT binary patch delta 21 acmZo_U~Fn& Date: Thu, 9 Nov 2023 17:57:07 -0500 Subject: [PATCH 8/8] testing Signed-off-by: AkshathRaghav --- .../__pycache__/optimization.cpython-39.pyc | Bin 4340 -> 4340 bytes .../__pycache__/inference.cpython-39.pyc | Bin 2967 -> 2967 bytes .../maskformer_losses.cpython-39.pyc | Bin 7973 -> 7973 bytes .../__pycache__/maskformer.cpython-39.pyc | Bin 4938 -> 4938 bytes .../detr_transformer.cpython-39.pyc | Bin 2480 -> 2480 bytes .../transformer_decoder.cpython-39.pyc | Bin 2853 -> 2853 bytes .../transformer_pixel_decoder.cpython-39.pyc | Bin 5238 -> 5238 bytes .../__pycache__/nn_block.cpython-39.pyc | Bin 2499 -> 2499 bytes .../panoptic_maskformer.cpython-39.pyc | Bin 16386 -> 16386 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc b/models/official/projects/maskformer/__pycache__/optimization.cpython-39.pyc index beece01401d18e6ee2e2ce10b04df036bd562892..0d382fd3a628d7670fd95888c8063c997e228b48 100644 GIT binary patch delta 19 ZcmeyO_(hQ`k(ZZ?0SF3{H*&oa001|)1w#M; delta 19 ZcmeyO_(hQ`k(ZZ?0SN3OH*&oa001^q1qJ{B diff --git a/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/inference.cpython-39.pyc index b06cb74d40622b3625c631c8a62fdd3ed0ba045e..56dbe7b1f890860dac746cd24582f52179ea2402 100644 GIT binary patch delta 19 ZcmbO(K3$wEk(ZZ?0SF3{H*)oI0{|$H1QP%N delta 19 ZcmbO(K3$wEk(ZZ?0SIg(H*)oI0{|x`1JwWk diff --git a/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc b/models/official/projects/maskformer/losses/__pycache__/maskformer_losses.cpython-39.pyc index ec9772549477c1153004ff6ec94473493d548a2a..63987d74aeb5bd28ac9463dd49345472d1e805b3 100644 GIT binary patch delta 19 ZcmZ2#x73a+k(ZZ?0SF3{H*!hK0{|}O1RnqZ delta 19 ZcmZ2#x73a+k(ZZ?0SIg(H*!hK0{|_21K|Jw diff --git a/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/__pycache__/maskformer.cpython-39.pyc index 42dd785c401cf26f37050aa6cbd3b59053b856d9..a7f0797883d2e3ba4651e9ec1e6c2700270d7e06 100644 GIT binary patch delta 19 ZcmX@5c1n#ak(ZZ?0SF3{H*z@$0{}571X2J1 delta 19 ZcmX@5c1n#ak(ZZ?0SN3OH*z@$0{}0?1Qh@P diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/detr_transformer.cpython-39.pyc index 2ac75c3a372ec4f4fe5652125a0652bf0e238eac..edf54dd444015cbf6a4e079604b435038c65fe67 100644 GIT binary patch delta 19 ZcmdlWyg`^Nk(ZZ?0SF3{H*ziG1OO|%1XKV3 delta 19 ZcmdlWyg`^Nk(ZZ?0SN3OH*ziG1OO^n1Q!4R diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_decoder.cpython-39.pyc index 0799b7cc661eeb3a34c4dce2a7819763c4f31a3f..b982e78682c6b415443cdcb75eb0f70e9bbccd84 100644 GIT binary patch delta 19 ZcmZ1~wp5HOk(ZZ?0SF3{H*!gH0{|(41G@kK delta 19 ZcmZ1~wp5HOk(ZZ?0SN3OH*!gH0{|!<1AYJi diff --git a/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc b/models/official/projects/maskformer/modeling/decoder/__pycache__/transformer_pixel_decoder.cpython-39.pyc index 0fdea8a7952e53b3044d9f3e857b98ce5e99e9dd..f290d977d19d67c6088f226324b1fa99b7dcc0fa 100644 GIT binary patch delta 19 ZcmeyS@lAs(k(ZZ?0SF3{H*)2O001}j1ls@r delta 19 ZcmeyS@lAs(k(ZZ?0SN3OH*)2O001_T1fBo@ diff --git a/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc b/models/official/projects/maskformer/modeling/layers/__pycache__/nn_block.cpython-39.pyc index 9688b4f838152dabfaceef7642ba5e37522f8951..2905ea77e403da55d54167da4b15a42316d9267d 100644 GIT binary patch delta 19 ZcmX>sd{~$(k(ZZ?0SF3{H*)Rd1OP6M1dRXy delta 19 ZcmX>sd{~$(k(ZZ?0SN3OH*)Rd1OP261W*6~ diff --git a/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc b/models/official/projects/maskformer/tasks/__pycache__/panoptic_maskformer.cpython-39.pyc index 602c71854854f8bace1a6b2cdce4110abbbfb48b..7ab91994ee9885a4bd2c4a46a8e52eca445ba3a4 100644 GIT binary patch delta 21 acmZo_U~Fn&